À l'aide de Clang sur Mingw 64bit

Je veux avoir clang en plus de GCC dans un MinGW-64bit de l'environnement sur Windows 7, en utilisant la bibliothèque standard de gcc. Je suis en utilisant gcc_x64_4.8.1_win32_seh_rev1 et Qt de http://sourceforge.net/projects/mingwbuilds/.

J'ai construit clang 3.3 dans cet environnement, sans drapeaux (juste faire le tour de l' HAVE_EHTABLE_SUPPORT compiler problème).

- Je utiliser un qmake processus de construction et le fichier de projet a ces lignes de plus pour clang (seulement en mode release):

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"

Compilation descend à:

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; };
                         ^

La recherche de l'internet a donné les références à _mingw.h, mais je ne sais pas quel est le problème là:

#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
Voir ce fil comment obtenir clang de travail sous windows: stackoverflow.com/questions/6525245/... en particulier ce post: stackoverflow.com/a/6525707/1392778 . Btw, la compilation llvm dans un 32 bits de l'environnement, comme clang ne prend pas en charge la gestion des exceptions la version 64bit de windows, ce qui signifie que vous avez besoin pour construire le tout avec de l'-fno-exceptions...
Bien que j'ai essayé, et j'ai maintenant le même problème, mais sans y compris les chemins d'accès à la bibliothèque standard. Donc l'erreur est toujours: __int128 n'est pas pris en charge sur cette cible. Le point n'est pas, que la bibliothèque standard de gcc n'est pas trouvé, le problème est qu'il semble ne pas fonctionner avec clang (au moins la version de gcc 4.8.1 et clang 3.3).
Je suis à l'aide de clang-3.3 livré avec tdm mingw 4.7.1 et la construction bits/aléatoire.h fonctionne très bien pour moi. Ainsi, vous pouvez envisager d'essayer 4.7.x à la place.
La construction de la rubenvb a fonctionné pour moi d'autres temps rubenvb SourceForge. Les dernières versions sont de clang 3.3, téléchargement GCC et mis à jour avec clang fichiers.

OriginalL'auteur Mike M | 2013-06-30