Linux——gcc -c -o 等参数的解释

当我们写好了C语言的代码之后,下一步就是gcc编译运行,这里对gcc代码的部分参数加以解释。
一个程序最终是为了生成一个可执行文件
完整的流程:源程序,预处理,编译生成汇编,可执行文件
——————.c————.i—————.s————(自动执行)

示例:

一、不使用参数,直接gcc

通过gcc 不加参数可以一步直接编译生成可执行文件.

gcc main.c

_这里自动生成的是可执行文件默认为a.out,当然可以通过-o选项更改生成文件的名字,比如将生成的可执行文件命名为HelloWord;HelloWord.exe;HelloWord.o;…(无所谓的后缀)

_为了以防混淆,还是建议根据源程序,预处理,编译生成汇编,可执行文件步骤写出相应的后缀,比如默认生成的是aaaa.o文件,修改为test.o即可,保持后缀一样,至于怎么判断后缀,了解本文开始的引言部分就明白了。

二、只使用 -o

用法:在 -o 后面输入自定义的文件名

gcc  HelloWord.c -o  HelloWord


# 这个HelloWord.c是目标文件,不是可执行文件,执行文件是自动生成的a.out 
# 想修改a.out的名字为HelloWord,HelloWord是可执行文件

三、只使用 -c

!注意:第一步这里不生成一个可执行文件

gcc -c HelloWord.c 

# _这个HelloWord.c是目标文件,不是可执行文件,因为这里用到了-c,
# 告诉gcc到汇编为止,不要进行链接。

# _链接就是将目标文件、启动代码、库文件链接成可执行文件的过程,
# 这个文件可被加载或拷贝到存储器执行。

# _会生成一个HelloWord.o的文件
gcc HelloWord.o
# 到第二步才会生成一个默认名为a.out的可执行文件。
  • 如果想要修改默认的可执行文件名字,第二步这里替换为
gcc HelloWord.o -o HelloWord
# 生成一个名字为HelloWord的可执行文件

四、实例代码解释(混合使用)

gcc -c test.c -o AA.o

#因为含有-c,所有自动生成同名的.o文件(test.o),修改名字为AA.o

你可能感兴趣的:(Linux,linux,c语言,bash)