6 ms·
Isn't a.out the default output format of gcc? I think if you type "gcc myfile.c" you get an a.out executable.
by ktjfi 8y ago
Isn't a.out the default output format of gcc? I think if you type "gcc myfile.c" you get an a.out executable.
- FineTralfazz 8y agoIt's named a.out, but that's just a legacy convention. It's still an ELF file.
- classichasclass 8y agoNo, you get a file named a.out by default, but it's not in that format.
- tannhaeuser 8y agoNo it's just the file name. If you run `file` on it, it'll tell you it's an ELF image.
- torlakur 8y agoThe name has stuck for some reason, but actually the output format is ELF.
- moray 8y agoHere it refers to the binary executable file format not the default file name gcc uses after compilation. a.out is a very old format superseded by ELF. https://en.wikipedia.org/wiki/A.out https://en.wikipedia.org/wiki/A.out
- benj111 8y agoAs others have pointed out it's an elf file called a.out. I would like to ask who's idea it was to name GCCs default output after a completely different file format ?!
- naniwaduni 8y agoThe format was named for the file, not the file for the format. By the time this became incongruous, it was too late to fix.
- Arnt 8y agogcc copied most of its command-line arguments from older compilers, including -o, and the default value if -o isn't set was also copied. So the command-line arguments and defaults are older than the ELF format. When ELF support was added, the question was: Should the default value for -o depend on other arguments? There didn't seem to be good reason to have a complicated default, and keeping the simple default provided compatibility with old scripts and makefiles. cd tests ; for a in *.c ; do gcc $a && ./a.out ; done