在MinGW w64 4.8中使用Clang 3.6

Pup*_*ppy 2 c++ clang mingw-w64

我有一个使用MinGW(w64)的基于Clang的项目。我正在将其更新为Clang 3.6。显然,MinGW在4.7中更改了其ABI,而Clang现在使用的是新的ABI,因此我要同时更新MinGW。

但是,现在我有一个小问题。使用Clang加载libstdc ++标头会导致很多编译错误-特别是关于常量表达式永远不会恒定的东西。我已启用C ++ 14和C ++ 1y支持。

此外,我无法让Clang认识到目标是MinGW。似乎在3.6中删除了他们对MinGW的三重支持,现在我不知道如何与Clang交流,他们应该发出与MinGW ABI兼容的代码。

如何使Clang与MinGW w64兼容?

Tho*_*mas 5

您可以通过来将clang定位为MinGW-w64 -target,即:

$ clang -v 2>&1|grep Target
Target: i386-pc-windows-cygnus

$ clang -target i686-w64-mingw32 -v 2>&1|grep Target
Target: i686-w64-windows-gnu
Run Code Online (Sandbox Code Playgroud)

只需将clang可执行文件重命名为i686-w64-mingw32-clang++.exe也可以做您想要的。