Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1563016
  • 博文数量: 290
  • 博客积分: 3468
  • 博客等级: 中校
  • 技术积分: 3461
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-28 22:21
文章分类

全部博文(290)

文章存档

2016年(13)

2015年(3)

2014年(42)

2013年(67)

2012年(90)

2011年(75)

分类: 嵌入式

2013-02-07 15:22:24

1、简介

什么是CFLAGS和CXXFLAGS?

CFLAGS和CXXFLAGS分别是针对C和C++代码在GCC下进行编译的环境变量。

如何使用它们?

在/etc/make.conf里面加入以下代码(示例代码,具体参数根据机器CPU选择):

CFLAGS=”-march=athlon64 -O2 -pipe”

CXXFLAGS=”${CFLAGS}”

2、优化

我们并不讨论GCC手册里面的上百种参数,这里只讨论最基本的优化参数。

-march

关于此参数的更详细的内容请参考

使用cat /proc/cpuinfo可以获得详细的关于机器CPU的信息,这对于填写此参数有帮助。

当然,如果你的程序要运行在不同的CPU,比如要发布此程序,在没有十分了解的情况下不要使用这个参数。

-O

这个参数不用多说,估计很多人都用过,不过需要注意的是,使用-O3是有风险的,它将需要更长的编译时间,产生体积更大的代码,消耗更多的内存,甚至产生不可预料的错误。所以,-O3在4.x版本是不推荐使用的,最好使用的参数是-O2。

-pipe

这个主要是可以再编译的时候使用pipe而不是临时文件来提高编译速度,如果内存足够,这个选项最好选上。

-fomit-frame-pointer

这个参数可以减少代码体积,貌似在指定-Ox的时候被默认指定,不过GCC没有明确指出,所以有必要的时候可以加上。

-msse, -msse2, -msse3, -mmmx, -m3dnow

在填写了正确的-march参数的情况下,可以不用理会这些指令集了。

参考:


原文:

阅读(1497) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~