Yu *_*ang 2 gcc compiler-optimization bazel
我正在学习GCC和Bazel。我想对bazel启用所有优化,以构建需要最佳性能的项目。
然后我发现“ -c opt”,这意味着将编译模式设置为没有调试信息就可以优化。
“ --copt = -O3”表示将优化级别设置为第三级。有-O2 -Os等。
我对这两种选择感到困惑。
1)“ -c opt”和“ --copt = -O3”有什么区别?2)他们会互相触发。所以我只需要用bazel build编写其中之一?
--copt
用于将args传递给编译器。
-c
是--compilation-mode的缩写。其效果在用户手册中进行了描述:
-c opt
隐含-O2 -DNDEBUG
)因此通常-c opt
就足够了。如果您想要的行为-c opt
却具有不同的优化级别,则可以组合使用in -c opt --copt=-O3
和in这样的两个选项,编译器将同时获得-O2
和-O3
,但是最后一个将获胜。
请注意,还有第三种类似的选择:
--config=configname
用于选择配置。您可以使用.bazelrc
定义默认选项。其中一些并不总是处于活动状态,但只有在您通过--config=configname
命令行选项将其激活后,它们才会处于活动状态。现在opt
是一个流行的配置名,所以如果您有一个.bazelrc
包含
build:opt --copt=-O3
Run Code Online (Sandbox Code Playgroud)
然后bazel build --config=opt
具有与bazel build --copt=-O3
归档时间: |
|
查看次数: |
1346 次 |
最近记录: |