版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Co_zy/article/details/79798329
1.单一程序:打印Hello
源文件为hello.c
无选项编译链接
gcc hello.c
将hello.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out
选项 -o
-o选项用来指定输出文件的文件名
gcc hello.c -o hello
选项 -E
gcc -E hello.c -o hello.i
将hello.c预处理输出hello.i文件
参数 -S
gcc -S hello.i
将预处理输出文件hello.i汇编成hello.s文件
参数 -c
gcc -c hello.s
将汇编输出文件hello.s编译输出hello.o文件
无选项链接
gcc hello.o -o hello
参数 -O
gcc -O1 hello.c -o hello
使用编译优化级别1编译程序.级别为1-3,级别越大优化效果越好,但编译时间越长.
2.主程序子程序链接:子程序的编译
假设我们在一个主程序里有调用了另一个子程序,例如以thanks.c这个主程序去调用thanks_2.c这个程序
多个文件一起编译
gcc thanks.c thanks_2.c -o thanks
将thanks.c和thanks_2.c分别编译后链接成thanks可执行文件
分别编译各个源文件,之后对编译后输出的目标文件链接
gcc -c thanks.c
gcc -c thanks_2.c
gcc -o thanks.o thanks_2.o -o test
以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。