Как происходит компоновка программы с библиотеками и как запустить эту программу на другом ПК?
Здравствуйте!
Представим, что есть программа, которая использует стороннюю библиотеку, установленную через make, например, в /usr/lib/some-library-name (в моем случае это Qwt). Я использую ее в программе, компилирую на своем компьютере, запускаю - она работает. Но, допустим, я хочу запустить ее на другом компьютере, и полагаю, что она не будет работать, поскольку на нем эта библиотека установлена не будет. Что нужно сделать, чтобы эта программа заработала на другом компьютере?
К примеру, к программе, написанной на Qt Widgets, с помощью windeployqt в папку с исполняемым файлом можно добавить dll-ки. Хорошо, но как быть с другими библиотеками, которые не предоставляют такие инструменты?
Компоновка бывает как статическая, когда библиотека (.a или .lib) сразу добавляется в состав исполнимого файла, или динамическая, когда библиотека (.so или .dll) загружается перед запуском приложения.
Во втором случае, библиотеки обычно устанавливаются пакетным менеджером, как зависимости проекта. Или же каким-либо инсталятором, если установка происходит на Windows.
Ну вот, пример: мне нужно собрать маленькую тестовую программу (50-100 строк), в которой используется библиотека Qwt. Получается, чтобы скинуть бинарник человеку, который хочет проверить мою работу, мне нужно для этого собирать целый инсталлятор?
Или, если скинуть исходники, то ему придется самостоятельно устанавливать библиотеку?