社区
工具平台和程序库
帖子详情
gcc 优化选项问题
誰伴我闖荡
2011-01-17 10:35:56
近日在做一个项目,
结果发现如果用默认的编译优化选项,运行的时候就是正确的,
然后使用-O2 -Os了,编译没问题,而且编译的包也会小一些,但是就是运行的时候运行不了。。
现在需要解决这个问题,
由于一直都没这方面的经验,不知道从何入手,
想请问下,这种问题如何解决?
谢谢了
...全文
220
5
打赏
收藏
gcc 优化选项问题
近日在做一个项目, 结果发现如果用默认的编译优化选项,运行的时候就是正确的, 然后使用-O2 -Os了,编译没问题,而且编译的包也会小一些,但是就是运行的时候运行不了。。 现在需要解决这个问题, 由于一直都没这方面的经验,不知道从何入手, 想请问下,这种问题如何解决? 谢谢了
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xunxun
2011-01-17
打赏
举报
回复
gcc如果使用多个类似作用的开关时,以最后一个开关为准,-O2 -Os 起作用的是-Os。
lz的问题应该是不加优化没有问题,加优化就有问题,检查下初始化、越界等。
誰伴我闖荡
2011-01-17
打赏
举报
回复
哦,那怎么解决运行不了这个的问题
huang_gen
2011-01-17
打赏
举报
回复
-Os相当于-O2.5。是使用了所有-O2的优化选项,但又不缩减代码尺寸的方法和O2冲突,导致生成的代码紊乱
claio
2011-01-17
打赏
举报
回复
运行不了提示什么嘛。。。
而且-Os 基本上就是 -O2,只是不缩减代码尺寸,没见过-Os -O2连着用的
linux 编译
优化
选项
,关于
GCC
优化
选项
打开后编译出错的
问题
当用
GCC
编译代码的时候,为什么指定
优化
等级就会报错?测试用的c代码肯定是没有
问题
的,就是打印一个字符而已#includevoidmain(){printf("%d\n",2);}执行
gcc
编译的指令我是这样的:
gcc
emmbed.c-o2emmbed然后出来一堆错:emmbed:Infunction`_fini"":(.fini+0x0):multipledefinition...
gcc
: O2编译
选项
可以掩盖的一种coredump情况
有时候会决定将其删除。比如:析构函数里的对对象成员的赋值,因为对象都要被析构了,赋值没有意义,就会将赋值语句从实际的二进制文件里去掉。有些代码,如果选择O2
选项
的话,
GCC
会认为代码无用,或者根本不会产生任何数据上的变更,没有意义。而不带-O2
选项
的编译结果,可能会出现一种coredump。这个时候,如果赋值语句如果有
问题
,就会被O2
选项
给掩盖掉。
避坑指南:
GCC
优化
选项
pragma push/pop的版本兼容性
问题
与替代方案
本文深入探讨了
GCC
优化
选项
pragma push/pop在不同版本中的兼容性
问题
,特别是
GCC
4.4以下版本的静默失败和行为不一致
问题
。通过版本检测宏和条件编译方案,提供了跨版本兼容的解决方案,并对比了函数级
优化
的替代方案。文章还特别针对Android NDK等特殊环境提供了适配技巧,帮助开发者避免常见的编译
优化
陷阱。
gcc
-O0 -O1 -O2 -O3 四级
优化
选项
及每级分别做什么
优化
相关博客http://blog.chinaunix.net/uid-24954950-id-2956476.html 相关博客http://blog.csdn.net/misiter/article/details/7514428 相关博客http://blog.chinaunix.net/uid-23916171-id-2653114.html
Gcc
编译
优化
简介
gcc
提供了为...
GCC
编译器介绍及常见的编译
选项
使用方法
GCC
编译器介绍及常见的编译
选项
使用方法
工具平台和程序库
24,850
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章