使用Clang 3.6和MinGW w64 4.8

时间:2015-07-11 08:52:35

标签: 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。似乎他们对MinGW的三重支持在3.6中删除了,现在我不知道如何与Clang沟通他们应该发出与MinGW ABI兼容的代码。

如何让Clang与MinGW w64兼容?

1 个答案:

答案 0 :(得分:5)

您可以通过-target将嘎嘎作为目标MinGW-w64,即:

$ 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

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