/lib64/libstdc++.so.6 не найден CentOS 7.3

Я разрабатываю приложение на Ubuntu 16.04. Когда я пытаюсь развернуть его на своих серверах Centos 7.3, я получаю следующую ошибку:

/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found
/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

Я пытался сделать, как указано в этом ответе, но все равно получаю ту же ошибку.

Чтобы скомпилировать свое приложение, я скомпилировал gcc 5.4.0 из исходного кода.

Когда я пытаюсь обновить libstdc++ с помощью yum install libstdc++.x86_64, он говорит, что Package libstdc++-4.8.5-11.el7.x86_64 already installed and latest version


person liorko    schedule 19.12.2016    source источник
comment
Вы также должны развернуть свой libstdc++ из пользовательской зависимости gcc 5.4.0.   -  person Matt Schuchard    schedule 19.12.2016


Ответы (1)


Если вы развертываете на CentOS 7, создайте CentOS 7.

В противном случае ваши зависимости времени выполнения не будут совпадать.

возможно отправить libc и libstdc++ Ubuntu вместе с вашим приложением, но по возможности этого следует избегать.

person Lightness Races in Orbit    schedule 19.12.2016
comment
Я забыл упомянуть об этом, я снова компилирую исходный код на своем сервере. - person liorko; 19.12.2016
comment
При чем тут Ubuntu? - person Lightness Races in Orbit; 19.12.2016
comment
Разработка велась в Ubuntu. После завершения разработки мы собираем его на серверах CentOS. - person liorko; 19.12.2016
comment
Тогда ради этого вопроса разработка велась на CentOS. Неважно, работает ли ваш программный/текстовый редактор на Ubuntu, Windows, Mac или в бумажном блокноте. Для меня это звучит так, как будто ваша проблема заключается в сборке GCC из исходного кода, а не в использовании диспетчера пакетов для установки всего, что поставляется с CentOS 7.3, а затем в неправильной установке. Почему бы вам не использовать встроенный компилятор CentOS 7? Затем, когда вы создадите свое приложение, его зависимости будут соответствовать тому, что поставляется с CentOS 7. В противном случае вам придется вручную устанавливать разные библиотеки. - person Lightness Races in Orbit; 19.12.2016
comment
Когда я попытался использовать встроенный компилятор, я получил множество ошибок, говорящих о том, что версия моего gcc слишком старая. - person liorko; 19.12.2016
comment
Вы пишете C++14 или что-то в этом роде? Какие новые функции вам нужны? Старайтесь этого избегать - идти не по трассе с компиляторами неприятно. (Я сделал это недавно, потому что мне нужен был С++ 11 на CentOS 6 — вам нужно связать среды выполнения и поиграться с настройками компоновщика — хотя вместо этого вы можете статически связать, в зависимости от ваших требований, которые у вас есть) т указано) - person Lightness Races in Orbit; 19.12.2016
comment
Итак, CentOS 7 поставляется с GCC 4.8, который поддерживает [большую часть] C++11. В частности, какая у вас была проблема со встроенным компилятором? Возможно, вам лучше попытаться решить это. - person Lightness Races in Orbit; 19.12.2016