Bazel 对于不同的编译模式(fastbuild、opt、dbg)有不同的输出目录,这使得它可以在调试模式下编译应用程序后保持发布构建缓存完整。这太棒了。
\n是否可以对不同的编译选项执行相同的操作?
\n我的用例:我有一个定制的 C++ 符号计算系统。程序的每次运行都是一次计算。大多数计算需要几秒钟。但有些需要几分钟。为了加速后者,我展开了几个低级函数,现在数千行代码被复制到每个编译单元(因为函数是模板化的)。这对计算速度产生了不错的影响,但也显着减慢了编译速度。实际上只有在一小部分运行中使用这些优化才有意义。
\n因此,将它们放在一个定义下,我可以通过--cxxopt=-DUNROLL_ALL_THE_THINGS. 但每当我从展开版本切换到简单版本并返回时,Bazel 都会丢弃编译缓存。本质上,我将 \xe2\x80\x9copt\xe2\x80\x9d 模式分为两个(\xe2\x80\x9copt\xe2\x80\x9d 和 \xe2\x80\x9csuper-opt\xe2\x80\x9d )但我不能让巴泽尔这样看。
可以使用该--platform_suffix选项手动向输出目录名称添加后缀。--platform_suffix=super所以,只要你使用 就可以通过--cxxopt=-DUNROLL_ALL_THE_THINGS。
| 归档时间: |
|
| 查看次数: |
911 次 |
| 最近记录: |