gpt4 book ai didi

gcc - Bazel 构建(或 GCC)中的 "-c opt"和 "--copt=-O3"有什么区别

转载 作者:行者123 更新时间:2023-12-03 14:30:47 24 4
gpt4 key购买 nike

我正在学习 GCC 和 Bazel。我想为 Bazel 启用所有优化以构建需要最佳性能的项目。
然后我找到了-c opt这意味着在没有调试信息的情况下将编译模式设置为优化。
和 - -copt=-O3表示将优化级别设置为第三个。有-O2 , -Os , 等等。
我对这两个选项感到困惑。

  • -c opt有什么区别和 --copt=-O3 ?
  • 他们会不会互相触发。所以我只需要用 bazel build 写一个?
  • 最佳答案

    --copt用于将 args 传递给编译器。
    -c--compilation-mode 的缩写形式.
    它的作用在 user-manual 中有描述。 :

  • 它设置编译器选项(例如 -c opt 暗示 -O2 -DNDEBUG )
  • 每种编译模式有不同的输出目录,因此您无需完全重新编译即可在调试和优化构建之间切换。

  • 所以通常, -c opt足够。如果你想要 -c opt 的行为但是使用不同的优化级别,您可以像 -c opt --copt=-O3 一样组合两个选项并且编译器将获得这两个选项 -O2-O3 ,但最后一个会赢。

    请注意,还有第三种类似的选择:
    --config=configname用于选择配置。您可以拥有一个 .bazelrc它定义了默认选项。其中一些并不总是处于事件状态,但有些只有在您通过 --config=configname 激活它们时才有效。命令行选项。现在 opt是一个流行的配置名称,所以如果你有 .bazelrc包含
    build:opt --copt=-O3

    然后 bazel build --config=optbazel build --copt=-O3 效果相同

    关于gcc - Bazel 构建(或 GCC)中的 "-c opt"和 "--copt=-O3"有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50413978/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com