我找不到关于此的太多信息。什么会导致 clang 指定此警告?
我有一台运行 cmake 脚本的开发机器,一切正常。在构建服务器上执行完全相同的 cmake 文件,上面的消息一直在打印。
构建服务器正在运行 clang3.8,而我的开发机器正在运行 clang4。我也无法用简单的解决方案重现这个问题。例如,一个简单的 main.cpp 不会导致这个错误:
clang++ main.cpp -std=c++14 -stdlib=libc++
Run Code Online (Sandbox Code Playgroud)
即使在构建机器上也能正常工作。
任何想法为什么这可能会被打印?
这是我使用的标志:
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}>")
Run Code Online (Sandbox Code Playgroud)
如果您想消除警告,请添加-Wno-error=unused-command-line-argument到LIBRARY_RELEASE_OPTIONSthis is required 以使用 ccache、distcc 等消除警告。
另外,最好使用set(CMAKE_CXX_STANDARD 14)而不是-std=c++14;添加LIBRARY_RELEASE_OPTIONS