Obtenir l'erreur «/usr/lib64/libstdc++.so.6: version« GLIBCXX_3.4.14 »introuvable» et d'autres erreurs lorsque je tape gmake dans le répertoire Qt


0

J'ai installé le programme d'installation hors connexion "Qt 5.8.0 pour Linux 64 bits (766 Mo)" ainsi que le fichier tar.gz pour les utilisateurs Linux et mac à partir du lien suivant:

https://www.qt.io/download-open-source/

Le fichier tar.gz que j'ai téléchargé était qt-everywhere-opensource-src-5.8.0.tar

(Mon système sous RHEL 6.6).

J'ai ensuite transféré le fichier tar.gz et le programme d'installation sur mon ordinateur de bureau et j'ai commencé à consulter ce lien pour des instructions supplémentaires:

http://doc.qt.io/qt-5/linux-building.html

Sur mon bureau, j'ai tapé ces commandes:

gunzip qt-everywhere-opensource-src-5.8.0.tar.gz        
tar xvf qt-everywhere-opensource-src-5.8.0.tar    

Cela a créé le répertoire qt-everywhere-opensource-src-5.8.0. J'ai ensuite utilisé cd aller à l'intérieur de ce répertoire et j'ai tapé ./configure.

Sur ce, on m'a d'abord demandé si je voulais l'édition Open-Source ou l'édition commerciale et j'ai choisi l'édition Open-Source. On m'a ensuite demandé si j'étais d'accord avec les licences GPL et LGPL et j'ai choisi de nouveau oui. À la fin, on m'a montré ce message:

Qt is now configured for building. Just run 'gmake'.
Once everything is built, you must run 'gmake install'.
Qt will be installed into /usr/local/Qt-5.8.0

Prior to reconfiguration, make sure you remove any leftovers from
the previous build.

Après avoir lu ceci, j'ai écrit gmake sur la ligne de commande. Après traitement gmake pendant plusieurs heures, j'ai eu ces erreurs:

gmake[4]: Entering directory `/root/Desktop/qt-everywhere-opensource-src-5.8.0/qtscxml/examples/scxml/trafficlight-widgets-static'
/root/Desktop/qt-everywhere-opensource-src-5.8.0/qtscxml/examples/scxml/trafficlight-widgets-static/qscxmlc_wrapper.sh ../trafficlight-common/statemachine.scxml --header statemachine.h --impl ./statemachine.cpp
/root/Desktop/qt-everywhere-opensource-src-5.8.0/qtscxml/bin/qscxmlc: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /root/Desktop/qt-everywhere-opensource-src-5.8.0/qtscxml/bin/qscxmlc)
gmake[4]: *** [statemachine.h] Error 1
gmake[4]: Leaving directory `/root/Desktop/qt-everywhere-opensource-src-5.8.0/qtscxml/examples/scxml/trafficlight-widgets-static'
gmake[3]: *** [sub-trafficlight-widgets-static-make_first] Error 2
gmake[3]: Leaving directory `/root/Desktop/qt-everywhere-opensource-src-5.8.0/qtscxml/examples/scxml'
gmake[2]: *** [sub-scxml-make_first] Error 2
gmake[2]: Leaving directory `/root/Desktop/qt-everywhere-opensource-src-5.8.0/qtscxml/examples'
gmake[1]: *** [sub-examples-make_first] Error 2
gmake[1]: Leaving directory `/root/Desktop/qt-everywhere-opensource-src-5.8.0/qtscxml'
gmake: *** [module-qtscxml-make_first] Error 2

Pourquoi est-ce que je reçois ces erreurs? Que dois-je faire pour les résoudre?

MODIFIER:

Lorsque je tape gcc -v, j'obtiens le résultat suivant:

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/root/gcc-4.8.2/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /root/Downloads/objdir/../gcc-4.8.2/configure --prefix=/root/gcc-4.8.2 --enable-languages=c,c++,fortran,go --disable-multilib
Thread model: posix
gcc version 4.8.2 (GCC) 

J'ai lu les erreurs attentivement et j'ai réalisé que la racine de mes erreurs est cette ligne:

/root/Desktop/qt-everywhere-opensource-src-5.8.0/qtscxml/bin/qscxmlc: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /root/Desktop/qt-everywhere-opensource-src-5.8.0/qtscxml/bin/qscxmlc)

J'ai fait référence à un Réponse de débordement de pile et sur cette base, j'ai tapé la commande suivante:

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX et cela m'a donné la sortie suivante:

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

Donc, apparemment, GLIBCXX_3.4.14 ne figure pas sur mon système et le recherche. Comment puis-je contourner ce problème?


Il est assez facile de remplacer /usr/lib64/libstdc++.so.6.0.13 par une version ultérieure. Et créez le nouveau lien libstdc ++. So.6. ... Si vous n'utilisez pas le compilateur g ++. C'est à dire. g ++ dépend de libstdc ++. so.6.0.13. .... Exemple: libstdc ++ - 4.8.2-15.el6.x86_64.rpm drive.google.com/file/d/0B7S255p3kFXNTldGbExoYXliYkU/… ... Au lieu d'installer un paquet, vous pouvez aussi faire ce qui suit: Décompresser le fichier rpm et copier libstdc ++. So.6.0.xx dans / usr / lib64 /.
Knud Larsen

@KnudLarsen Que se passera-t-il si on utilise le compilateur g ++?
a_sid

g ++ est OK avec par exemple libstdc ++. so.6 - & gt; libstdc ++. so.6.0.19. Les problèmes dont je me suis souvenu ont dû être: Installation du paquetage alien rpm. Déballer le nombre de tours: unPack_rpm.sh : drive.google.com/file/d/0B7S255p3kFXNZ2EyWFpOdEhDOGM/…
Knud Larsen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.