我找不到关于此的更多信息。 什么可以导致clang指定此警告?
我有一台运行cmake脚本的开发机器,一切正常。正在构建服务器上执行完全相同的cmake文件,上面的消息一直在打印出来。
构建服务器正在运行clang3.8而我的dev机器正在运行clang4。 我也无法通过简单的解决方案重现这个问题。 例如,一个简单的main.cpp不会导致此错误:
clang++ main.cpp -std=c++14 -stdlib=libc++
即使在构建机器上也能正常工作。
为什么会打印出来的任何想法?
这是我使用的标志:
set(LIBRARY_RELEASE_OPTIONS "-Wall;-Wextra;-pedantic;-Wlong-long;-Wmissing-braces;-Wunused-function;-Wuninitialized;-Wunused-label;-Wunused-parameter;-Wdisabled-optimization;-O2;-std=c++14;")
add_library(${SHARED_LIBRARY_NAME} STATIC ${SERVER_SOURCE})
target_compile_options(${SHARED_LIBRARY_NAME} PUBLIC "$<$<CONFIG:RELEASE>:${LIBRARY_RELEASE_OPTIONS}>")
答案 0 :(得分:1)
问题似乎与ccache有关。 ccache 3.3.3正如预期的那样工作,而在ubuntu 16上的3.2.4 LTS似乎会引起这个警告。
答案 1 :(得分:0)
如果要使警告静音,请将-Wno-error=unused-command-line-argument
添加到LIBRARY_RELEASE_OPTIONS
,这是通过ccache,distcc等来平息警告所必需的。
此外,最好使用set(CMAKE_CXX_STANDARD 14)
,而不是将-std=c++14;
添加到LIBRARY_RELEASE_OPTIONS