Получение ошибки "/usr/lib64/libstdc++.so.6: версия` GLIBCXX_3.4.14 'не найдена "и другие ошибки при вводе gmake в каталог Qt

1528
a_sid

Я установил автономный установщик «Qt 5.8.0 для Linux 64-bit (766 МБ)», а также файл tar.gz для пользователей Linux и mac по следующей ссылке:

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

Файл tar.gz, который я скачал, был qt-everywhere-opensource-src-5.8.0.tar

(Моя система в RHEL 6.6).

Затем я перенес файл tar.gz и установщик на рабочий стол и начал ссылаться на эту ссылку для получения дополнительных инструкций:

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

На моем рабочем столе я набрал эти команды:

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

Это создало каталог qt-everywhere-opensource-src-5.8.0. Затем я cdзаходил в этот каталог и печатал ./configure.

После этого меня сначала спросили, хочу ли я версию с открытым исходным кодом или коммерческую, и я выбрал версию с открытым исходным кодом. Затем меня спросили, согласен ли я с лицензиями GPL и LGPL, и снова выбрал «да». В самом конце мне показали это сообщение:

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. 

Прочитав это, я написал gmakeв командной строке. После обработки в gmakeтечение нескольких часов я получил эти ошибки:

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 

Почему я получаю эти ошибки? Что я должен сделать, чтобы решить их?

РЕДАКТИРОВАТЬ:

Когда я набираю gcc -v, я получаю следующий вывод:

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)  

Я внимательно прочитал ошибки и понял, что корнем моих ошибок является эта строка:

/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) 

Я сослался на ответ переполнения стека и на основании этого набрал следующую команду:

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX и это дало мне следующий вывод:

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 

Очевидно, что GLIBCXX_3.4.14 не находится в моей системе, и он ищет его. Как я могу обойти эту проблему?

0
Заменить /usr/lib64/libstdc++.so.6.0.13 на более позднюю версию довольно просто. И создайте новую ссылку libstdc ++. So.6. ... * Если * вы не используете компилятор g ++. Т.е. g ++ зависит от libstdc ++. So.6.0.13. .... Пример: libstdc ++ - 4.8.2-15.el6.x86_64.rpm https://drive.google.com/file/d/0B7S255p3kFXNTldGbExoYXliYkU/view?usp=sharing ... Вместо установки пакета вы также можно сделать: распаковать rpm и скопировать libstdc ++. so.6.0.xx в / usr / lib64 /. Knud Larsen 7 лет назад 0
@KnudLarsen Что произойдет, если использовать компилятор g ++? a_sid 7 лет назад 0
С g ++ все в порядке, например, libstdc ++. so.6 -> libstdc ++. so.6.0.19. Проблемы, которые я помнил, должны были быть: Установка инопланетного rpm-пакета. Распакуйте rpm: `unPack_rpm.sh`: https://drive.google.com/file/d/0B7S255p3kFXNZ2EyWFpOdEhDOGM/view?usp=sharing Knud Larsen 7 лет назад 0

0 ответов на вопрос

Похожие вопросы