gcc编译工具链使用

5 篇文章 0 订阅

简述

gcc的全称是GNU Compiler Collection,它是一个能够编译多种语言的编译器。最开始gcc是作为C语言的编译器(GNU C Compiler),现在除了c语言,还支持C++、java、Pascal等语言。gcc支持多种硬件平台。

常用参数(大小写敏感)

参数作用
-o重定向目标文件
-E只进行预处理,产物: *.
-S编译器执行完编译操作后停止,产物: *.s
-c编译器执行完汇编操作后停止,产物 *.o
-Wall使gcc对源文件的代码有问题的地方发出警告
-Idir将dir加入到头文件搜索路径中
-Idir加入到头文件搜索路径中
-Ldir将dir加入到第三方库搜索路径中
-ldir链接lib库,库只写库名(如库名为libcurl.so.1,填写内容为-lcurl)
-glevel链接lib库,库只写库名(如库名为libcurl.so.1,填写内容为-lcurl)

注:加粗部分为参数

实例

1.	gcc -E hello.c -o hello.i   	对hello.c文件进行预处理,生成了hello.i 文件  
2.	gcc -S hello.i -o hello.s    	对预处理文件进行编译,生成了汇编文件  
3.	gcc -c hello.s -o hello.o  	对汇编文件进行编译,生成了目标文件  
4.	gcc hello.o -o hello 对目标文件进行链接,生成可执行文件  
5.	gcc hello.c -o hello 直接编译链接成可执行目标文件  

进阶参数

参数作用
-pipe编译过程中使用管道功能减少临时文件产生
-O -O2 -O3打开优化,不能与-g同时使用,出现多个优化时以最后为准
-O0关闭所有优化
-vgcc版本及相关配置信息
-w禁止所有报警
-ggdb尽可能生成gdb可以使用的调试信息
-share尽量使用动态库,默认为此选项
-static全部使用静态库
-shared产生动态库文件
-fPIC生成位置无关代码,编译动态库时使用(多个动态库冲突问题)
-fPIE生成位置无关代码,编译生成二进制可执行文件时使用
-Wl后续内容作为参数传递给动态链接器
–verbose打印出编译链接的详细信息

库生成使用可以参考:Linux环境C++编译第三方库调用

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值