cmake 将 clang-cl 检测为 clang
cmake detects clang-cl as clang
我用cmake和msvc构建了boringssl。 然后我尝试使用 clang-cl 进行构建,所以我在 vmake 参数中使用了 -T"LLVM-vs2014">
Clang-cl 使用 cl 参数,但 cmake 使用 gcc 样式参数而不添加 -Xclang
处理这种情况的正确方法是检查
(CMAKE_CXX_COMPILER_ID STREQUAL Clang AND "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC"))
问题就在这里:
if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wshadow -Werror -Wno-error=shadow -Wno-error=unused-value -ggdb -std=gnu89")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wshadow -Werror -Wno-error=shadow -Wno-error=unused-value -ggdb -std=c++0x")
我将 Clang 更改为 Clng,因此 clang-cl 不会被标识为 clang.exe这需要 gcc 风格的参数
相关文章:
- 使用CMake检测支持的C++标准
- 奇怪的结构&GCC&clang(void*返回类型)
- 当套接字连接断开时检测C/C++Unix
- 数据成员SFINAE的C++17测试:gcc vs clang
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- C/C++预处理器是否可以检测一些编译器选项
- WMI检测进程创建事件-c++
- 如何检测 Clang AST C++中的静态函数
- Clang 无法检测到初始化并给出错误
- cmake 将 clang-cl 检测为 clang
- Clang 无法在赋值运算符/复制构造函数中检测到未初始化的类成员
- 使用预处理器检测 MSVC,而不检测 clang-cl、icl
- 使用 Clang 检测进行基于时间的分析
- Clang - 检测头文件何时完成
- 如何在 clang 消毒器发现错误时终止 clang 检测程序
- Clang 无法检测到未定义的行为
- 为什么在模板方法的 clang 中检测到不完整的类型
- 如何在预处理时可靠地检测 clang 的版本
- Clang 3.5:使用 SFINAE 检测 gobal 函数不存在