我想在 Windows 7 上的MinGW-64 位环境中除了GCC之外还有 clang ,两者都使用来自 gcc 的标准库。我正在使用来自http://sourceforge.net/projects/mingwbuilds/的 gcc_x64_4.8.1_win32_seh_rev1 和 Qt 。
我在这个环境中构建了 clang 3.3,没有任何标志(只是绕过HAVE_EHTABLE_SUPPORT
编译问题)。
我使用 qmake 构建过程,项目文件还有这些用于 clang 的行(只是发布模式):
QMAKE_CC = clang
QMAKE_CXX = clang++
QMAKE_CXXFLAGS_RELEASE += -Wno-ignored-attributes
QMAKE_CXXFLAGS_RELEASE += -I"C:/tc/gcc_x64_4.8.1_win32_seh_rev1/mingw64/lib/gcc/x86_64-w64-mingw32/4.8.1"
QMAKE_CXXFLAGS_RELEASE += -I"C:/tc/gcc_x64_4.8.1_win32_seh_rev1/mingw64/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++"
QMAKE_CXXFLAGS_RELEASE += -I"C:/tc/gcc_x64_4.8.1_win32_seh_rev1/mingw64/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/x86_64-w64-mingw32"
QMAKE_CXXFLAGS_RELEASE += -I"C:/tc/gcc_x64_4.8.1_win32_seh_rev1/mingw64/x86_64-w64-mingw32/include"
编译归结为:
C:/tc/gcc_x64_4.8.1_win32_seh_rev1/mingw64/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++\bits/random.h:106:26: error:
__int128 is not supported on this target
{ typedef unsigned __int128 type; };
^
搜索互联网给出了_mingw.h的引用,但我不知道那里有什么问题:
#if (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 1)) && \
!defined(__SIZEOF_INT128__) /* clang >= 3.1 has __int128 but no size macro */
#define __SIZEOF_INT128__ 16
#endif