cmake:MSVC,GNU解决bigobj问题
2023-03-14 22:45:43 时间
当代码中使用了大量模板时,会导致编译出的OBJ文件巨大,编译器会报错,
在MSVC下错误为 Fatal Error C1128
在GNU C++下错误提示为 too many sections
…File too big
解决办法也不复杂:
在MSVC下要添加编译选项 /bigobj
在GNU C++下要添加编译选项 -Wa,-mbig-obj
在cmake脚本中,可以使用cmake-generator-expressions
以如下的简洁方式设置MSVC和GNU的编译选项:
add_executable(item_utest item_test.cpp)
# 因为大量使用模板,导致代码增大,MSVC下要用/bigobj选项,否则会报错:error C1128
# GNU compiler 要用 -Wa,-mbig-obj 选项
target_compile_options(item_utest
PRIVATE
$<$<CXX_COMPILER_ID:MSVC>:/bigobj>
$<$<CXX_COMPILER_ID:GNU>:-Wa,-mbig-obj>)
参考资料
相关文章
- 搭建网站要服务器吗
- 新概念车即将亮相,奥迪启用品牌顶级域名.audi
- 爸爸学儿子!测试新版chrome下载按钮:与Edge如出一辙
- 太占CPU电脑太卡?教你关闭Windows 11内存压缩
- 氐宿-基于OpenHarmony成长计划知识赋能的学习笔记
- Linux后台开发必知的io优化知识总结
- oeasy教您玩转vim – 3 – # 打开文件
- oeasy教您玩转vim – 2 – # 使用帮助
- 角宿-基于OpenHarmony成长计划知识赋能的学习笔记
- 有免费的服务器吗
- Linux 与 Windows 共享文件的实现就这么简单!
- 虚拟服务器有免费的吗
- 微软 Edge Dev 浏览器首个 100 版本发布(附更新内容大全)
- 免费云虚拟主机如何开通
- 被指责“Safari 是最糟糕的,它就是新 IE”,苹果浏览器团队征求反馈意见
- 如何设置企业邮箱免费
- Web Components 系列之 关于 Custom Elements
- 怎样免费注册公司邮箱
- OpenHarmony轻量系统开发移植MQTT
- NLP随笔(四)