我正在网上阅读有关ELF文件的内容,并且不了解标准命令以生成ELF文件。
直到现在我一直在使用>运行我的代码gcc test.c -o test.o .Thats it !!
一篇文章说:
gcc -c test.c //将生成ELF文件test.o
现在-o选项是告诉编译器创建一个可执行文件(不是ELF)
另一位article说:
gcc -c test.c -o test.o //将生成ELF test.o - >在这里我很困惑。
-o应始终生成可执行文件。
答案 0 :(得分:3)
选项-c
告诉GCC生成目标文件。此目标文件仅是源文件test.c
中的已编译代码,而不是完整程序。要生成完整的程序,您需要链接目标文件。或者不使用-c
选项。
-o
选项告诉GCC输出文件的名称,无论输出文件是什么类型。
因此,要从单个源文件生成可执行文件,最简单的命令是
$ gcc test.c
以上命令将在当前目录中创建名为a.out
的可执行文件。要将输出文件命名为其他内容,请使用-o
选项:
$ gcc test.c -o myprogram
以上命令命名可执行程序myprogram
。
要对目标文件使用中间步骤,请使用-c
选项,然后使用单独的步骤链接程序,例如
$ gcc -c test.c
$ gcc test.o -o myprogram
以上两个命令与单个命令gcc test.c -o myprogram
相同。