well, you are making an executable, but by convention, you don't include an extension for it. what he is showing off though, is that -o <filename> is how you specify the output file, because without it, the executables output name will simply be a.out

If any part of my post is incorrect, please correct me.

This post is not guarantied to be correct, and is not to be taken as a matter of fact, but of opinion or a guess, unless otherwise noted.

i suggest you read the man page on g++ to check out all the options you can use

>> oooah ok. what would I put there for linux app?
you dont have to put anything specific for a linux app. linux does not see files in terms of extensions, but rather permissions. so if you have a file named

foo

it will execute the same as foo as it would as

foo.bar
foobar
foo.exe
a.out

names dont matter.

so just put somthing descriptive for the '-o' option or leave it blank