GCC编译简单范例

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

以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。

你可能感兴趣的:(Linux)