2013-04-22 3 views
1

Я пытаюсь развернуть приложение C++ с log4cxx.so и требует glibc 2.14, но развернутая машина имеет 2.12 glibc. Необходимо ли обновить этот аппарат до glibc 2.14 для запуска этого приложения? Или есть другой более портативный способ?развертывание приложений linux C++

+1

Вы можете попробовать статически связать библиотеку. Google должен указать информацию о том, как это сделать. –

+0

это может помочь: [Насколько совместимы разные версии glibc?] [1] [1]: http://stackoverflow.com/questions/11107263/how-compatible-are-different-versions-of-glibc – andrjas

+1

Тогда, если слишком сложно развернуть новую версию glibc, статически связать свой исполняемый файл. – phoeagon

ответ

2

Linux двоичная переносимость - это боль. Linux использует символ управления версиями, так что вы должны быть в состоянии выяснить, какие символы необходимы с:

nm binary | grep @@GLIBC_ | sort [email protected] -k14 

Вы можете быть в состоянии встраивать функции и удалить зависимость от более новых glibc.

Подробнее ... here. Как правило, лучшим вариантом для переносимости является компиляция с более старой версии glibc или просто для предоставления источников и MAKEFILE.

Смежные вопросы