Разработка применений QT в системах UNIX с использованием CT Creator

StackOverflow https://stackoverflow.com/questions/4634952

Вопрос

Я разрабатываю приложение 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 будет правильно настроить среду? Это довольно раздражает, чтобы придеться скопировать все файлы в другой каталог с помощью сценария Launcher, просто чтобы проверить сборку. В Windows она работает отлично - Qt Creator автоматически добавляет каталоги, содержащие DLL на путь, когда он запускает ваше приложение (где пробегается от проводника, скажем, DLL не найден). Mac OS X еще хуже, чтобы запустить install_name_tool на все ...

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

Это было полезно?

Решение

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

На Creator 2.0.0 Это доступ к: проекты -> цели -> (ваша цель) -> Run -> Run Environment (после открытия вашего проекта)

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

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

Другие советы

У меня была похожая проблема с приложениями QT с QtCreator на My Linux Machine. Я решил его, добавив следующие строки к файлу .pro файла клиентского приложения:

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

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

Информация о рапущении здесь: рапать

Надеюсь, это поможет, по отношению

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

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

Это тоже ладит мою проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top