- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
构建时出现以下错误:
...has undefined behavior [-Werror,-Wundefined-reinterpret-cast]
Bazel 构建完全停止,因为 clang (llvm compiler) -Wundefined-reinterpret-cast
warning被-Werror
转化为构建错误。
尽管出现此构建错误,我如何强制构建继续并生成二进制可执行文件?
请注意,我的 bazel 构建命令具有以下形式:
time bazel build //my/src/...
最佳答案
答案是使用 -Wno-error=<name>
构建标志,as described by gcc here (注意 clang 的选项是仿照 gcc 的):
-Werror=
Make the specified warning into an error. The specifier for a warning is appended; for example
-Werror=switch
turns the warnings controlled by-Wswitch
into errors. This switch takes a negative form, to be used to negate-Werror
for specific warnings; for example-Wno-error=switch
makes-Wswitch
warnings not be errors, even when-Werror
is in effect.The warning message for each controllable warning includes the option that controls the warning. That option can then be used with
-Werror=
and-Wno-error=
as described above.
来源:https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html (强调已添加)。
因此,对于这种情况,添加构建选项 -Wno-error=undefined-reinterpret-cast
关闭 -Werror=undefined-reinterpret-cast
旗帜。
在 Bazel 中,您可以使用 --copt="<flag>"
传递 C/C++ 构建选项选项(请参阅 here )(另请参阅 --per_file_copt
选项(请参阅 here 和 here )),在这种情况下使最终命令看起来像这样:
time bazel build --copt="-Wno-error=undefined-reinterpret-cast" //my/src/...
这行得通! Bazel 构建现在运行完成,再次仅将这些问题显示为警告(现在警告声明中缺少通知 -Werror
):
...has undefined behavior [-Wundefined-reinterpret-cast]
请注意,如果您需要一次传递多个构建标志,请多次调用 --copt=
.例如:
time bazel build --copt="-Wno-error=undefined-reinterpret-cast" \
--copt="-Wno-error=switch" --copt="-ggdb" --copt="-O0" //my/src/...
注意:永远不要对生产代码执行此操作,以免出现此类潜在严重警告(例如:未定义行为)。对于更多良性警告,如果您确实需要禁用警告,这是正确的技术。对于未定义的行为,这应该只是为了学习。请参阅此答案下方的评论。
gcc
or clang
compilers)", here 的部分下 repo .阅读此处了解更多信息。#pragma
头文件上方和下方的语句 #include
语句只影响那些文件。关于c++ - 如何在 Bazel 中禁用 C/C++ `-Werror` 构建错误? (又名 : how to turn OFF specific warnings already turned on by `-Wall -Werror` ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64111153/
warnings.warn() 和有什么区别?和 logging.warn()就它们的作用和应该如何使用而言? 最佳答案 我同意另一个答案——logging 用于记录,warning 用于警告——但我
这是我写的代码: #usr/bin/python3 import warnings def tt(): warnings.warn("123") return 10 x = tt()
我正在尝试使用基于文档中显示的示例的代码片段来提出DeprecationWarning。 http://docs.python.org/2/library/warnings.html#warnings
我正在尝试提出一个 DeprecationWarning,其中包含基于文档中显示的示例的代码片段。 http://docs.python.org/2/library/warnings.html#war
我有兴趣尝试在调用时操纵警告,而无需围绕方法创建支持基础设施。也就是说,我需要能够捕获警告,而无需使用以下代码包装代码: tryCatch(..., warning = function() { ac
我是 js 我正在尝试使用 this.setState({但我收到警告。 你们能告诉我为什么我收到以下警告吗 warning.js:45 警告:setState(...):只能更新已安装或正在安装的组
我的最小例子是 #!/usr/bin/python3 import warnings warnings.warn('Run Forest run!', stacklevel=2) warnings.w
本文整理了Java中com.ibm.wala.util.warnings.Warnings.asString()方法的一些代码示例,展示了Warnings.asString()的具体用法。这些代码示例
本文整理了Java中com.ibm.wala.util.warnings.Warnings.clear()方法的一些代码示例,展示了Warnings.clear()的具体用法。这些代码示例主要来源于G
本文整理了Java中com.ibm.wala.util.warnings.Warnings.add()方法的一些代码示例,展示了Warnings.add()的具体用法。这些代码示例主要来源于Githu
我一定是错误地理解了警告文档。我读它的方式,这段代码: use warnings; use warnings FATAL => 'all'; warnings::warn('numeric', 'bl
我在 Linux 上使用 OpenMP 指令编译 C 代码时收到此警告: warning: ignoring #pragma omp parallel Gcc 版本是 4.4。 这只是一个我不应该关心
我有一个奇怪的 g++ 行为,当显示任何其他警告时,它会显示有关无法识别的命令行选项的警告。 例子: struct Foo{virtual int bar() = 0;}; struct Bar:pu
在 Visual Studio 2010 中使用 C++ native 解决方案。 #pragma warning (push) 用于 cpp 文件的开头,在所有包含之后。之后,#pragma war
我习惯于开始我的每一个脚本 use strict; use warnings; 但是这里的一些知名人士推荐 use warnings 'all'; 如果我理解正确,后者甚至比第一个更好。所以我通读了d
我正在编码C#。我使用NCrunch在后台运行单元测试。我已经在CSPROJ文件中设置了(新的CSPROJ格式)。 我想将FxCop分析仪用作NuGet软件包:https://docs.microso
谁能帮我解决这个问题,我收到此警告消息 log4j:WARN No appenders could be found for logger (com.akak.book.shop.listener.L
我正在尝试了解更多关于 linux 内核中的 kobject 的信息,并且在尝试编写一个使用此类工具的模块时,我收到了错误和警告消息,因此我将相关数据的精简版本放在这里结构和相应的gcc的错误和警告信
http://docs.python.org/2/howto/logging.html 上的样本同时使用 warn 和 warning。 最佳答案 logging.warn 自 Python 3.3
警告[nuxt]两个解析为相同名称ProseCode的组件文件:。警告[nuxt]两个解析为相同名称ProsePre的组件文件:。更新nuxt 3后的警告->3.7&nuxt/内容2.4->2.8。如
我是一名优秀的程序员,十分优秀!