@sitev_ru
sitev.ru - мой блог ...

Как скомпилировать в один большой запускной файл?

Компилирую под линукс запускаемый файл, он зависит от большого количества so-библиотек. Можно ли их все скомпилировать в один большой запускаемый файл?
  • Вопрос задан
  • 291 просмотр
Пригласить эксперта
Ответы на вопрос 2
Nipheris
@Nipheris Куратор тега C++
он зависит от большого количества so-библиотек.

У вас два варианта:
1. Использовать статические варианты библиотек вместо динамических (so) - это то, что предлагает Vitaly.
2. Продолжать собирать как сейчас, но научиться собирать нормальные пакеты под нужные вам дистрибутивы, с нормальным описанием зависимостей - тогда системный пакетный менеджер при установке вашего пакета поставит все нужные вам зависимости.

Второй вариант сложнее, но предпочтительнее, т.к. в случае критических уязвимостей в библиотеках их можно будет обновить независимо без обновления вашего приложения. Когда вы линкуете статически, очевидно что уязвимый код в вашем бинарнике можно обновить только пересборкой этого бинарника с новой версией библиотеки, т.е. без вашего участия (если код закрыт) уязвимость не устранить. Критично ли это для вас или нет - решать вам, зависит от важности вашего приложения.
Ответ написан
Комментировать
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Да. Читайте про статическую линковку.
Помимо этого, можно просто все нужные зависимости поставлять с исполняемым файлом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы