Запуск библиотеки C ++ 11 со старой libc

Я написал общую библиотеку с использованием функций C ++ 11, скомпилированную с помощью gcc 4.8, libc 2.18, которую нужно запускать на клиентской машине с CentOS 6 с gcc 4.4.7. , библиотека libc 2.12. В этой библиотеке есть некоторые символы, которых нет в libc 2.12, поэтому как я могу использовать эту библиотеку в CentOS 6. У меня есть гибкость в том, как, где и на какой машине библиотека может быть скомпилирована, но в конечном итоге ее можно будет использовать на клиенте. CentOS 6, где пакеты трогать нельзя. Можно ли скомпилировать его с помощью DevTools-2 на CentOS 6 или могут возникнуть какие-либо проблемы, связанные с ABI. Пожалуйста, дайте мне знать, если есть другие предложения. Заранее спасибо.

0
23.06.2016, 13:33
1 ответ

Скомпилируйте в той же системе, на которой он запущен. Возможно, вам потребуется перекомпилировать для скачка версии дистрибутива (, например. с 7 до 8 ), а иногда и в промежутке.

Если вы используете разные версии компилятора, вы можете столкнуться с несовместимостью между общими вспомогательными библиотеками для компилятора, базовыми C или C++, (наиболее вероятно, )библиотеками или различными внешними зависимостями. Не беспорядок, который я хотел бы отлаживать.

1
28.01.2020, 02:48

Теги

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