首页 > 解决方案 > 在针对 MinGW-w64 的 Windows 下使用 CMake 和 Clang

问题描述

我正在尝试 CMake 一个项目,与

-DCMAKE_CXX_COMPILER:STRING=C:/Dev/LLVM-10.0.0/bin/clang++.exe
-DCMAKE_CXX_COMPILER_TARGET:STRING=x86_64-w64-mingw32

但我得到了错误:

“C:/Dev/LLVM-10.0.0/bin/clang++.exe”以 MSVC ABI 为目标,但具有类似 GNU 的命令行界面。这是不支持的。请改用“clang-cl”,例如通过在环境中设置“CXX=clang-cl”。此外,使用 MSVC 命令行环境。

如果我在 shell 上运行:clang++.exe -target x86_64-w64-mingw32 -v我得到:

clang version 10.0.0
Target: x86_64-w64-windows-gnu
Thread model: posix
InstalledDir: C:\Dev\LLVM-10.0.0\bin

这表明clang支持指定的目标。

为什么 clang 会错误地将 msvc 识别为目标?

标签: cmakemingwllvm

解决方案


您可以尝试使用来自http://winlibs.com/的 LLVM/clang吗?它没有任何对 MSVC 的引用。


推荐阅读