1.获取系统头文件搜索路径:
gcc -v 有效C源文件
2.产生映射文件:
除了实用nm工具外,可以在用gcc命令时,用-wl传递参数给连接器ld产生映射文件
gcc -wl,-Map=main.map main.c -o main.exe
3.定义宏:
gcc -D'GREET=2' main.c -o main.exe
相当于#define GREET 2
4.生成依赖关系:
gcc -M main.c (一类来自系统头文件,一类来自自己的文件)(一部分直接包含,一部分是间接包含的)
gcc -MM main.c (由于系统头文件多数情况下是不会改变的,因此在构造make所需依赖关系时不必将它们纳入其中,通过-MM生成不半包含系统头文件的依赖关系)
5.指定链接库:
-L选项用于告诉gcc可以从哪个目录查找库文件,可以多次使用它以指定多个目录;
-l选项则用于告诉gcc在生成可执行程序时需要链接的库命,这一选项同样可以多次使用以指定多个库。使用时要注意,后面所跟的名字并不包括“lib”前缀和“.a”后缀。比如,-lfoo就是代表libfoo.a库参与链接。
(注意@:根据经验发现,使用gcc进行链接时依赖关系需要从左向右指定,比如说main.c文件中调用了foo.c文件中的函数foo(),而foo()函数调用了bar.c文件中的bar(),而foo.c和bar.c用于生成库文件libfoo.a和libbar.a,那么选项中必须采用“main.c -lfoo -bar”顺序,否则就会出现报告错误。
gcc这种奇怪特性造成依赖关系比较复杂时需要对同一个库在不同的位置指定多次,否则就会出现无法成功链接的情形。)