-D macro 或者 -Dmacro 相当与 在代码中添加#define macro (这里的macro可以是任何字符串,-D才是选项,而不是-Dmacro)
-D macro=defn 相当与在代码中添加 #define macro=defn
-Umacro 相当于C语言中的#undef macro
-ldir
在你是用#include"file"的时候,gcc/g++会先在当前目录查找你所制定的头文件,如
果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他会先在你所制定的目录查找,然后再按常规的顺序去找.
对于#include<file>,gcc/g++会到-I制定的目录查找,查找不到,然后将到系统的缺
省的头文件目录查找
-include file
包含某个代码,简单来说,就是便以某个文件,需要另一个文件的时候,就可以用它设
定,功能就相当于在代码中使用#include<filename>
例子用法:
gcc hello.c -include /root/pianopan.h
-nostdinc
使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确限定头
文件的位置
-llibrary
制定编译的时候使用的库
例子用法
gcc -lcurses hello.c
使用ncurses库编译程序
-static
此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么
动态连接库,就可以运行.
-share
此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.
更多GCC选项
命令 | 描述 |
---|---|
-l library -llibrary |
进行链接时搜索名为library的库。 例子: $ gcc test.c -lm -o test |
-Idir | 把dir加入到搜索头文件的路径列表中。 例子: $ gcc test.c -I../inc -o test |
-Ldir | 把dir加入到搜索库文件的路径列表中。 例子: $ gcc -I/home/foo -L/home/foo -ltest test.c -o test |
-Dname | 预定义一个名为name的宏,值为1。 例子: $ gcc -DTEST_CONFIG test.c -o test |
-Dname=definition | 预定义名为name,值为definition的宏。 |
-ggdb -ggdblevel |
为调试器 gdb 生成调试信息。level可以为1,2,3,默认值为2。 |
-g -gl |