gcc编译选项

来源:互联网 发布:php url post参数传递 编辑:程序博客网 时间:2024/06/05 07:06

gcc -Dmacro=value

相当于程序中#define macro value,也可以不要=value,相当于#define macro


gcc -Idir

先在dir路径查找需要的头文件,然后按常规顺序查找


-Wformat

对printf的参数格式进行检查


头文件
用C语言及其他语言进行程序设计时,你需要用头文件来提供对常量的定义和对系统函数及库函数调用的声明。对C语言来说,这些头文件几乎总是位于/usr/include目录及其子目录中。那些依赖于特

定Linux版本的头文件通常可在目录/usr/include/sys和/usr/include/linux中找到。

在调用C语言编译器时,你可以使用-I标志来包含保存在子目录或非标准位置中的头文件。
gcc -I/usr/openwin/include fred.c
它指示编译器不仅在标准位置,也在/usr/openwin/include目录中查找程序fred.c中包含的头文件。

库文件
标准系统库文件一般存储在/lib和/usr/lib目录中。C语言编译器(或更确切地说是链接程序)需要知道要搜索哪些库文件,因为在默认情况下,它只搜索标准C语言库。

gcc -o fred fred.c /usr/lib/libm.a
这条命令要求编译器除了搜索标准的C语言函数库外,还搜索静态库libm.a
下面的命令也能产生类似的结果
gcc -o fred fred.c -lm
-1m是简写方式,它代表的是标准库目录(本例中是/usr/lib)中名为libm.a的函数库。-1m标志的另一个好处是如果有共享库,编译器会自动选择共享库。

虽然库文件和头文件一样,通常都保存在标准位置,但你也可以通过使用-L(大写字母)标志为编译器增加库的搜索路径。例如:
gcc -o x11fred -L/usr/openwin/lib x11fred.c -lx11
这条命令用/usr/openwin/lib目录中的libX11库版本来编译和链接程序x11fred。

0 0
原创粉丝点击