Originally Posted by rob.rice
try this "gcc -o hello hello.c"
rob.rice you are dragging this thread totally off-topic.
In the Wikipedia page you linked: ""a.out" remains the default output file name for executables created by certain compilers and linkers when no output name is specified, even though the created files actually are not in the a.out format
In Linux, the compiler generates ELF binaries. It has done so for ages.
Explicit linking is not needed as the above examples clearly showed. The compiler does the linking for you. Try "gcc -v
-o hello hello.c" instead of your own commandline (what was the point of that?) and you will see that gcc invokes its "collect2" binary which will collect all the library information and then call "ld" to link the final executable.