2017-05-03 1 views
1

Essayer de construire GCC 7.1.0 à partir de la source. Ce n'est pas ma première fois et ça fonctionnait dans les versions précédentes du GCC.Compilation de GCC 7: erreur: le préprocesseur C++ "/ lib/cpp" échoue à la vérification d'intégrité

../configure --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 \ 
--prefix=/c/mingw64 --with-sysroot=/c/mingw64 \ 
--with-gmp=/c/mingw64/gmp --with-mpfr=/c/mingw64/mpfr --with-mpc=/c/mingw64/mpc \ 
--with-isl=/c/mingw64/isl \ 
--disable-nls --disable-multilib --disable-libstdcxx-pch --disable-shared \ 
--disable-win32-registry --disable-libstdcxx-debug --disable-libstdcxx-verbose \ 
--with-tune=haswell --enable-lto --enable-checking=release --enable-languages=c,c++ \ 
--enable-libstdcxx-time --enable-threads=win32 --enable-libatomic --enable-fully-dynamic-string 

Erreur

checking how to run the C++ preprocessor... /lib/cpp 
configure: error: in `/c/mingw64/src/build/gcc': 
configure: error: C++ preprocessor "/lib/cpp" fails sanity check 
See `config.log' for more details. 
make[2]: *** [Makefile:4309: configure-stage2-gcc] Error 1 
make[2]: Leaving directory '/c/mingw64/src/build' 
make[1]: *** [Makefile:20550: stage2-bubble] Error 2 
make[1]: Leaving directory '/c/mingw64/src/build' 
make: *** [Makefile:936: all] Error 2 

config.log complète: https://pastebin.com/raw/mEeJHCuK

Notez que je ne /lib/cpp EXISTE.

J'ai fait quelques recherche Google et essayé toutes les suggestions, y compris:

  • CXX=/c/mingw/bin/g++ (également à CC et CPP)
  • Remplacer toutes les occurences de /lib/cpp en gcc-7.1.0/gcc/configure avec /c/mingw/bin/g++. Ce qui m'a donné:
 
    conftest.c:14:8: error: 'Syntax' does not name a type 
      Syntax error 
      ^

(^ est similaire à Compiling on a mac: What does it mean if my compiler fails a sanity check?)

Il y avait un vieux (critique) bug qui semble lié à https://gcc.gnu.org/ml/gcc-bugs/2015-10/msg00604.html, mais aucune mise à jour.

+0

Même problème ici. Il est provoqué par 'vérifier comment exécuter le préprocesseur C++' (voir votre config.log quelques lignes au-dessus de l'erreur'/lib/cpp'). Il ne peut pas trouver 'limits.h' là pour une raison quelconque. – user5434231

Répondre

0

CPP ne doit pas pointer sur g++; CPP est le préprocesseur C, donc faire pointer vers le préprocesseur C:

CPP=/c/mingw/bin/cpp 

Ceci est mentionné sur la question que vous lié.

+0

Utilisé votre solution, mais devez également remplacer toutes les occurrences de "/ lib/cpp" par "/ c/mingw/bin/cpp" dans src/gcc/configure. Marquer votre message comme réponse néanmoins. –

+0

@JohnLondon: D'accord, le script configure est buggé tbh –