转gcc编译器选项及优化提

转gcc编译器选项及优化提

ID:30449570

大小:85.71 KB

页数:14页

时间:2018-12-30

转gcc编译器选项及优化提_第1页
转gcc编译器选项及优化提_第2页
转gcc编译器选项及优化提_第3页
转gcc编译器选项及优化提_第4页
转gcc编译器选项及优化提_第5页
资源描述:

《转gcc编译器选项及优化提》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、转GCC编译器选项及优化提示原文地址:版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着GPL的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。其他作品本文作者十分愿意与他人共享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有作品的列表:金步国作品列表BUG报告,切磋与探讨由于作者水平有限,因此不能保证作品内容准确无误,请在阅读中自行鉴

2、别。如果你发现了作品中的错误,请您来信指出,哪怕是错别字也好,任何提高作品质量的建议我都将虚心接纳。如果你愿意就作品中的相关内容与我进行进一步切磋与探讨,也欢迎你与我联系。联系方式:Email:csfrank@citiz.net;QQ:70171448;MSN:csfrank122@hotmail.com==很多弟兄可能都很关心如何优化编译自己的程序,虽然本人不赞成"骨灰"玩法,却也不得不承认这是掌握gcc的绝佳途径;因此献上此帖,以供各位玩家参考,绝对原创噢=大多数程序和库在编译时默认的优化级别是"2"(使用gcc选项:"-O2")并且在Intel/AMD平台上

3、默认按照i386处理器来编译。如果你只想让编译出来的程序运行在特定的平台上,就需要执行更高级的编译器优化选项,以产生只能运行于特定平台的代码。一种方法是修改每个源码包中的Makefile文件,在其中寻找CFLAGS和CXXFLAGS变量(C和C++编译器的编译选项)并修改它的值。一些源码包比如binutils,gcc,glibc等等,在每个子文件夹中都有Makefile文件,这样修改起来就太累了!另一种简易做法是设置CFLAGS和CXXFLAGS环境变量。大多数configure脚本会使用这两个环境变量代替Makefile文件中的值。但是少数configure脚本

4、并不这样做,他们必须需要手动编辑才行。为了设置CFLAGS和CXXFLAGS环境变量,你可以在bash中执行如下命令(也可以写进.bashrc以成为默认值):exportCFLAGS="-O3-march=cpu类型"&&CXXFLAGS=$CFLAGS这是一个确保能够在几乎所有平台上都能正常工作的最小设置。"-march"选项表示为特定的cpu类型编译二进制代码(不能在更低级别的cpu上运行),Intel通常是:pentium2,pentium3,pentium3m,pentium4,pentium4m,pentium-m,prescott,nocona说明:p

5、entium3m/pentium4m是笔记本用的移动P3/P4;pentium-m是迅驰I/II代笔记本的cpu;prescott是带SSE3的P4(以滚烫到可以煎鸡蛋而闻名);nocona则是最新的带有EMT64(64位)的P4(同样可以煎鸡蛋)AMD通常是:k6,k6-2,k6-3,athlon,athlon-tbird,athlon-xp,athlon-mp,opteron,athlon64,athlon-fx用AMD的一般都是DIYer,就不必解释了吧。如果编译时没有抱怨"segmentationfault,coredumped",那么你设定的"-O"优化

6、参数一般就没什么问题。否则请降低优化级别("-O3"-"-O2"-"-O1"-取消)。个人意见:服务器使用"-O2"就可以了,它是最安全的优化参数(集合);桌面可以使用"-O3";不鼓励使用过多的自定义优化选项,其实他们之间没什么明显的速度差异(有时"-O3"反而更慢)。编译器对硬件非常敏感,特别是在使用较高的优化级别的时候,一丁点的内存错误都可能导致致命的失败。所以在编译时请千万不要超频你的电脑(我编译关键程序时总是先降频然的)。注意:选项的顺序很重要,如果有两个选项互相冲突,则以后一个为准。比如"-O3"将打开-finline-functions选项,但是可以

7、用"-O3-fno-inline-functions"既使用-O3的功能又关闭函数内嵌功能。更多的优化选项请参见:所有GCC选项完整列表参见:有两个页面值的参考:(对于gentoo-1.4)比较安全的优化选项对于gentoo-1.4)进阶优化选项哦,忘了说一声,"-O2"已经启用绝大多数安全的优化选项了,所以其实你不必对那一堆选项发愁。先说说"-O3"在"-O2"基础上增加的几项,你可以按需添加(还算比较安全):[gcc-3.4.4]-finline-functions允许编译器选择某些简单的函数在其被调用处展开-fweb为每个web结构体分配一个伪寄存器-fre

8、name-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。