cmake编译选项

1 需求

现在已经有一个cmake工程,我想要添加-O0 -g,生成gdb的调试信息和不进行代码优化。

也就是说,我该怎样修改CFLAGS和CPPFLAGS?

 

2 在project后面添加

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g")

关于CMAKE_C_FLAGS

它将这里设置的-O0 -g追加到CFLAGS前面。这样不能解决问题,因为默认原来会有-O3,会覆盖前面刚刚加的-O0。

 

这个不分debug和release。

 

3 CFLAGS有多个相同的编译选项,哪个生效呢?

比如-O0 -O3同时存在。

后面的会覆盖前面的。

gcc -O0 -O3 test.c -o test,则执行O3优化

gcc -O3 -O0 test.c -o test,不执行优化

 

4 最好的解决办法

如果是编译release版本的话,

mkdir Release

cd Release

cmake -DCMAKE_BUILD_TYPE=Release ..

make

 

如果是编译debug版本的话,

mkdir Debug

cd Debug

cmake -DCMAKE_BUILD_TYPE=Debug ..

make

 

这里CMAKE_C_FLAGS_DEBUG默认只是有一个“-g”,所以,可以在此基础上添加优化选项

set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0")

set(CMAKE_C_FLAGS_Release "${CMAKE_C_FLAGS_Release} -O3")

 

转载于:https://www.cnblogs.com/hustdc/p/10226508.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值