首页 / Linux / Linux下常用的gcc参数
Linux下常用的gcc参数
系统教程导读
互联网集市收集整理了【Linux下常用的gcc参数】操作系统教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1557字,纯文字阅读大概需要3分钟。
系统教程内容图文
![Linux下常用的gcc参数](/upload/InfoBanner/systemjiaocheng/300/ddeaf99abdf945bdb4da063c2f989384.jpg)
为您提供
首先说一下gcc和g++分别是gnu的c和c++编译器,而且它们在进行编译的时候,一般需要分为四步:
①预处理,对于cpp会生成.i文件,使用预处理器cpp
②将预处理后的文件不转换为汇编语言,生成.s文件,使用编译器egcs
③将汇编文件变成目标文件,也就是生成机器码,这里就是生成.o文件,使用汇编器as
④连接目标代码,生成可执行程序,使用连接器ld
其中主要参数为:
-x language filename它是设定文件使用的语言,此时后缀名是无效的,虽然我们约定c语言的后缀是.c,c++语言的后缀名是.cpp,但是此时我们可以随意使用后缀名。通常可用的参数有:c、objective-c、c-header、c++、cpp-output、assembler、assembler-with-cpp。比如我们可以使用命令cpp -x c hello.xin
-x none filename 它是关闭上一个选项,让gcc根据文件名的后缀自动判断文件类型,比如gcc -x c hello.xin -x none hi.c
-c是只激活预处理、编译和汇编,也就是它只把程序做成obj文件,我们可以使用gcc -c hello.c会生成.o的obj文件
-S只激活预处理和编译,能够把文件编译成为汇编代码,比如我们gcc -S hello.c会生成.s的汇编代码,我们可以使用文本编辑器查看。
-E 只激活预处理,这个不生成文件,我们需要把它重定向到一个输出文件里面,比如gcc -E hello.c > xin.txt或者gcc -E hello.c |more来查看。
-o指定目标名称,缺省gcc编译出来的文件是a.out,我们可以使用gcc -o hello hello.c的方式。
-pipe使用管道代替编译中的临时文件,使用非gnu汇编工具的时候可能会有问问题。
-undef取消对任何非标准宏的定义
-Idir 在我们使用#include的时候,gcc会先在当前目录查找我们所制定的头文件,如果没有找到,它会到缺省的头目录文件去找,如果使用-I指定了目录,他会先在我们指定的目录查找,然后到常规的目录去找。
-I-是取消前一个参数的功能,一般在-Idir之后使用。
-C在预处理的时候,不删除注释信息,一般和-E使用,在分析程序的时候很方便
-M生成文件关联的信息,包含目标文件所依赖的所有源代码,我们可以用gcc -M hello.c来测试
-MM和-M一样,但是他忽略由#include <file>造成的依赖关系
-MD和-M相同,但是将输出导入到.d的文件里面
-MMD和-MM相同,把输出导入到.d的文件里面
-library是指定编译时使用的库。
-Ldir指定编译时,搜索库的路径,其中dir是我们的目录的名称。
-O0、-O1、-O2、-O3是编译器的优化选项的四个级别,其中-O0表示没有优化,-O1为默认值,而-O3的优化级别最高
-g只是编译器,在编译的时候,产生调试信息
-gstabs它以stabs格式产生调试信息,但是不包含gdb调试信息
-ggdb会产生gdb的调试信息
-static会禁止使用动态库,因此编译出来的东西一般都很大
-share会尽量使用动态库,所以生成文件很小,但是需要使用动态库
-traditional师徒让编译器支持传统C语言特性
以上就是给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击官网吧。
本文来自http://www.win7cn.com/如需转载请注明!推荐:win7纯净版
系统教程总结
以上是互联网集市为您收集整理的【Linux下常用的gcc参数】操作系统教程的全部内容,希望文章能够帮你了解操作系统教程Linux下常用的gcc参数。 如果觉得互联网集市操作系统教程内容还不错,欢迎将互联网集市网站推荐给好友。
系统教程备注
版权声明:本文内容由互联网用户贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
系统教程手机端
扫描二维码推送至手机访问。
来源:【匿名】