Я хотел бы включать libQtGui.so.4 libQtNetwork.so.4 и libQtCore.so.4 в том же каталоге как, где мое приложение находится. Как я заставил бы QT понять это? y цель должен иметь автономное приложение, которое пользуется общими библиотеками
Установка переменной среды LD_LIBRARY_PATH - это один из вариантов. Например:
export LD_LIBRARY_PATH=/path/to/dir/with/libs:$LD_LIBRARY_PATH
Другой вариант - установить RPATH вашего приложения Qt во время компоновки. Установка RPATH в значение "$ ORIGIN" заставит динамический компоновщик искать в том же каталоге, что и ваше приложение Qt во время выполнения. Например, при использовании qmake добавьте следующий фрагмент в файл проекта:
unix:!mac{
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/lib
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/libs
QMAKE_RPATH=
}
Это установит для RPATH значение «$ ORIGIN: $ ORIGIN / lib: $ ORIGIN / libs», что означает, что динамический компоновщик сначала будет искать в местоположение вашего приложения Qt, затем в подкаталоге lib в его местоположении, затем в подкаталоге libs в его местоположении и, наконец, в любых местах, определенных системой.
UNIX / Linux сначала будет искать в LD_LIBRARY_PATH (если установлено), прежде чем искать в стандартных системных библиотеках. Так что, если вы установите это, вы действительно можете переопределить. Точно так же, как установка PATH в Windows. Тот же эффект. Порядок имеет значение.
Вы можете добавить ./ или. в LD_LIBRARY_PATH.
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH