Разработка приложений Qt в системах Unix с использованием Qt Creator - PullRequest
3 голосов
/ 08 января 2011

Я занимаюсь разработкой приложения Qt в Linux с использованием Qt Creator (2.1 RC).Я создал 2 проекта и использовал мастер для добавления проекта библиотеки в проект приложения.Однако, когда я запускаю его, я получаю сообщение об ошибке:

/home/jakepetroules/silverlock/silverlock-build-desktop/desktop/silverlock: error while loading shared libraries: libsilverlocklib.so.1: cannot open shared object file: No such file or directory

Есть ли какая-нибудь переменная qmake, которую я могу установить, чтобы Qt Creator правильно настроил среду для запуска?Весьма раздражает необходимость копировать все файлы в другой каталог с помощью скрипта запуска, чтобы иметь возможность протестировать сборку.В Windows это работает отлично - Qt Creator автоматически добавляет каталоги, содержащие библиотеки DLL, в переменную PATH, когда запускает ваше приложение (если при запуске его из Проводника будет указано, что DLL не найдена).Mac OS X еще хуже: нужно запускать install_name_tool для всего ...

Так как мне настроить файлы qmake, чтобы все работало прямо с кнопки запуска в Qt Creator?Трудно отлаживать и без этой способности.

Ответы [ 3 ]

6 голосов
/ 09 января 2011

У меня была похожая проблема при запуске приложений qt с QTCreator на моей машине с Linux. Я решил это, добавив следующие строки в .pro-файл клиентского приложения:

unix:LIBS += -L/home/projects/my_libs/ -lmy_lib

unix:{
  QMAKE_LFLAGS += -Wl,--rpath=/home/projects/my_libs/
  QMAKE_LFLAGS_RPATH=
}

информация о rpath находится здесь: rpath

надеюсь, это поможет, с уважением

5 голосов
/ 10 января 2011

Да, в Creator есть раздел, в котором вы можете установить любое окружение, необходимое для запуска вашего приложения.

В Creator 2.0.0 доступ к нему осуществляется через: Проекты -> Цели -> (ваша цель) ->Run -> Run Environment (после того, как вы открыли свой проект)

Затем вы можете добавлять или удалять любые переменные окружения, в том числе LD_LIBRARY_PATH В одном я не уверен, насколько это возможно.например, заменить путь компоновки на значение этих переменных, чтобы вам не приходилось жестко его кодировать в LD_LIBRARY_PATH.

. Другой вариант - добавить небольшой скрипт оболочки в дерево исходных текстов,устанавливает необходимые переменные и добавляет конфигурацию запуска «Пользовательский исполняемый файл» для запуска этого сценария.Это доступно через тот же экран.

1 голос
/ 16 сентября 2016

Просто используя это:

unix:LIBS += -L/home/projects/my_libs/ -lmy_lib
unix:{
  QMAKE_LFLAGS += -Wl,--rpath=/home/projects/my_libs/
}

Это тоже моя проблема.

...