- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
gcc编译器 CFLAGS 标志参数说明
gcc编译器 CFLAGS 标志参数说明 2012-11-14 15:10:28
分类: LINUX
CFLAGS -g -O2? -Wall -Werror -Wno-unused
编译出现警告性错误unused-but-set-variable,变量定义但没有使用,解决方法:?增加CFLAGS 或CPPFLAGS参数如下:? CPPFLAGS -Werror -Wno-unused-but-set-variable || exit 1 Gcc总体选项列表
所对应的语言 -S 只是编译不汇编,生成汇编代码 -E 只进行预编译,不做其他处理 -g 在可执行程序中包含标准调试信息 -o file 把输出文件输出到file里 -v 打印出编译器内部编译各过程的命令行信息和编译器的版本 -I dir 在头文件的有哪些信誉好的足球投注网站路径列表中添加dir目录 -L dir 在库文件的有哪些信誉好的足球投注网站路径列表中添加dir目录 -static 链接静态库 -llibrary 连接名为library的库文件 · “-I dir”
正 如上表中所述,“-I dir”选项可以在头文件的有哪些信誉好的足球投注网站路径列表中添加dir目录。由于Linux中头文件都默认放到了“/usr/include/”目录下,因此,当用户希望 添加放置在其他位置的头文件时,就可以通过“-I dir”选项来指定,这样,Gcc就会到相应的位置查找对应的目录。
比如在“/root/workplace/Gcc”下有两个文件:
#include
int main printf “Hello!!\n” ; return 0; #include
这样,就可在Gcc命令行中加入“-I”选项:
[root@localhost Gcc] Gcc?hello1.c –I /root/workplace/Gcc/ -o hello1
这样,Gcc就能够执行出正确结果。
小知识
在include语句中,“ ”表示在标准路径中有哪些信誉好的足球投注网站头文件,““””表示在本目录中有哪些信誉好的足球投注网站。故在上例中,可把hello1.c的“#include”改为“#include “my.h””,就不需要加上“-I”选项了。
· “-L dir”
选项“-L dir”的功能与“-I dir”类似,能够在库文件的有哪些信誉好的足球投注网站路径列表中添加dir目录。例如有程序hello_sq.c需要用到目录“/root/workplace/Gcc/lib”下的一个动态库libsunq.so,则只需键入如下命令即可:
[root@localhost Gcc]?Gcc hello_sq.c –L /root/workplace/Gcc/lib –lsunq –o hello_sq
需要注意的是,“-I dir”和“-L dir”都只是指定了路径,而没有指定文件,因此不能在路径中包含文件名。
另 外值得详细解释一下的是“-l”选项,它指示Gcc去连接库文件libsunq.so。由于在Linux下的库文件命名时有一个规定:必须以lib三个字 母开头。因此在用-l选项指定链接的库文件名时可以省去lib三个字母。也就是说Gcc在对”-lsunq”进行处理时,会自动去链接名为 libsunq.so的文件。
(2)告警和出错选项
Gcc的告警和出错选项如表3.8所示。 Gcc总体选项列表
选 项 含 义 -ansi 支持符合ANSI标准的C程序 -pedantic 允许发出ANSI C标准所列的全部警告信息 -pedantic-error 允许发出ANSI C标准所列的全部错误信息 -w 关闭所有告警 -Wall 允许发出Gcc提供的所有有用的报警信息 -werror 把所有的告警信息转化为错误信息,并在告警发生时终止编译过程
下面结合实例对这几个告警和出错选项进行简单的讲解。
如有以下程序段:
#include
void main long long tmp 1; printf “This is a bad code!\n” ; return 0; 这是一个很糟糕的程序,读者可以考虑一下有哪些问题?
· “-ansi”
该选项强制Gcc生成标准语法所要求的告警信息,尽管这还并不能保证所有没有警告的程序都是符合ANSI C标准的。运行结果如下所示:
[root@localhost Gcc]# Gcc?–ansi warning.c –o warning
warning.c: 在函数“main”中:
warning.c:7 警告:在无返回值的函数中,“return”带返回值
warning.c:4 警告:“main”的返回类型不是“int”
可以看出,该选项并没有发现”long long”这个无效数据类型的错误。
· “-pedantic”
允许发出ANSI C标准所列的全
文档评论(0)