我有一个使用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兼容?
答案 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
,也可以执行您想要的操作。