|
|||||||
Как скомпилировать программу статически или с определенным путем к библиотекам
Время создания: 11.11.2014 14:54
Текстовые метки: linux, windows, C, C++, компиляция, статическая линковка
Раздел: Компьютер - Программирование - Компилятор GCC
Запись: xintrea/mytetra_syncro/master/base/1415706876ti9ichenxk/text.html на raw.github.com
|
|||||||
|
|||||||
Как сделать сборку программы так, чтобы она не требовала системных библиотек? Вариант 1 LD_LIBRARY_PATH и/или -Wl,-rpath спасут отца русской демократии в GNU-окружении (приплетать сюда все слово линакс не совсем корректно) уже есть способ контроля версий: -Wl,-soname. Вариант 2 (Для Linux и Qt) На винде проще простого, либы в одну директорию с программой положить и всё. В Linux либо запускать из shell-скрипта с выставленной переменной LD_LIBRARY_PATH, либо вшивать относительный путь к библиотекам прямо в бинарник с помощью флагов ld. Со всем нужным экранированием в qmake это будет выглядеть так: unix:!macx { QMAKE_LFLAGS += '-Wl,-rpath,\'\$$ORIGIN/libs\',-z,origin' } Добавляет ./libs в путь, в котором линуксовый бинарник ищет библиотеки. Внимание! Эти методы не позволяют сделать по-настоящему статическую сборку программы. В любом случае, программа будет исполняться на коде ядра и на системной библиотеке. И если прикрепленные к программе библиотеки на смогут работать в таком окружении, то и программа работать не будет. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|