MSVS编译器标志/bigobj的惩罚
Penalty of the MSVS compiler flag /bigobj
基本的谷歌搜索bigobj问题表明,很多人正在经历致命错误C1128: "部分数量超过对象文件格式限制:编译/bigobj"。如果大量使用c++模板库,如Boost库或CGAL库,则更有可能发生此错误。
这个错误很奇怪,因为它给出了自己的解决方案:设置编译器标志/bigobj
!
我的问题是:为什么这个标志不是默认设置的?使用该标志必须受到惩罚,否则它将被默认设置。该处罚在MSDN中没有记录。有人知道吗?
我问这个问题是因为我想知道CGAL的配置系统是否应该默认不设置/bigobj
文档确实提到了/bigobj
的一个重要缺点:
Visual c++ 2005之前发布的链接器不能读取。obj文件
因此,默认设置此选项将限制可以使用最终目标文件的链接器的数量。最好在需要的时候激活它。
为什么这个标志不是默认设置的?使用该标志必须有惩罚,否则它将被默认设置。
我的快速非正式实验显示,使用/bigobj
后。obj文件比不使用CC_5时大2%左右。这是一个很小的惩罚,但不是零。
有人提交了一个功能请求,使/bigobj
默认;参见https://developercommunity.visualstudio.com/t/Enable-bigobj-by-default/1031214。
相关文章:
- 如果着色器中未使用绑定属性位置,是否会对其进行惩罚
- 如何让 MSVS 识别 bigobj 标志?
- 如何将 /bigobj 开关添加到与 ms 代码生成 clang 的 clang
- 这个指针和性能惩罚
- 在C 11中使用静态变量是否受到惩罚
- c++11 lambda初始化的惩罚
- 在类中包装int的任何性能惩罚
- 在 CUDA 内核中使用字符变量是否会受到惩罚
- 可变长度数组中的运行时惩罚
- 全局变量0-initialized惩罚
- GCC 相当于 MS 的 /bigobj
- 通过自定义边缘权重惩罚来提升A*访问者
- 使用/bigobj链接耗时太长
- MSVS编译器标志/bigobj的惩罚
- 在氧中注释内联变量是否会受到惩罚?
- 测量手绘曲线与模板的相似性,惩罚比例/旋转
- make_shared<>() 中的 WKWYL 优化是否会对某些多线程应用程序造成惩罚?
- 分支的缓存缺失惩罚
- 调用非虚拟基方法时,C++中是否存在虚拟继承的惩罚/成本