Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 如果不是在clang命令行中,这个构建标志从何而来_Cmake_Clang++ - Fatal编程技术网

Cmake 如果不是在clang命令行中,这个构建标志从何而来

Cmake 如果不是在clang命令行中,这个构建标志从何而来,cmake,clang++,Cmake,Clang++,我有一个铿锵的建造线,看起来像这样: bin/clang++ -Werror=foo -Wno-bar... 等等。基本上有一堆警告和错误标志。好吧,这是有道理的。然后,我得到一个错误,例如: error: implicit conversion loses integer precision: 'ulong' (aka 'unsigned long') to 'int') [-Wshorten-64-to-32] 其中-Wshorten-64-to-32不是上述clang++命令中的标志。

我有一个铿锵的建造线,看起来像这样:

bin/clang++ -Werror=foo -Wno-bar...
等等。基本上有一堆警告和错误标志。好吧,这是有道理的。然后,我得到一个错误,例如:

error: implicit conversion loses integer precision: 'ulong' (aka 'unsigned long') to 'int') [-Wshorten-64-to-32]

其中-Wshorten-64-to-32不是上述clang++命令中的标志。所以它一定是从那条线以外的地方来的。clang可以使用命令行之外的标志吗?我的理解是,它使用的所有标志都将直接打印在该命令上。

默认情况下,许多警告处于打开状态,而其他警告则通过一次隐式启用多个警告类别的选项(如
-Wall
-Wextra
)启用

将报告警告类别
-Wshorten-64-to-32
,以便您可以通过在命令行中添加
-Wno-shorten-64-to-32
来关闭特定警告(如果您不喜欢)