qmake и QT_INSTALL_PREFIX. Как я могу выбрать новое место для библиотеки Qt? - PullRequest
17 голосов
/ 27 мая 2009

Я новичок в qmake и пытаюсь создать существующее приложение. Qt был первоначально установлен в /usr/local/lib/Qt-4.3.5, и 'qmake -query QT_INSTALL_PREFIX' возвращает этот путь.

Я переместил библиотеку Qt в другое место, и сгенерированные файлы Makefile были добавлены в / usr / local original path.

Как заставить qmake использовать выбранное мной новое местоположение без перекомпиляции Qt?

Ответы [ 3 ]

35 голосов
/ 01 ноября 2011

Я изучил это и нашел способ, который работает (в qt 4.7.2), настроив qt с файлом qt.conf.

В моем случае я добавил qt4-4.7.2/bin/qt.conf (он должен быть в том же месте, что и исполняемый файл qmake)

Со следующим содержанием:

[Paths]
Prefix = c:/my_path/to/qt4-4.7.2

и qmake -query начал возвращать правильные пути!

Подробнее см. http://doc.qt.io/qt-4.8/qt-conf.html


[Обновление:] Поскольку, по крайней мере, Qt 5.3.1 (протестирован со статическими версиями 5.3.1 и 5.5 в Windows 8) вы можете просто сделать

[Paths]
Prefix = ..

и разверните установку Qt в любом месте.

9 голосов
/ 27 мая 2009

Это 'buildin', скомпилированный в qmake из qconfig.cpp. Лучший способ - перенастроить Qt с другим префиксом и, к сожалению, пересобрать. Для большинства других переменных вы можете использовать файл .qmake.cache. См

http://doc.qt.digia.com/qt/qmake-environment-reference.html

для получения дополнительной информации

2 голосов
/ 17 февраля 2011

Как отметил Хенрик Харц, QT_INSTALL_PREFIX является встроенным и не может быть изменен. Однако, если вы просто хотите обойти временную перестройку Qt, попробуйте следующее:

Запросите qmake для его префикса установки, воссоздайте сообщенную структуру каталогов и используйте символическую ссылку или жесткую ссылку, где находится перемещенная версия Qt. Например. в Linux

  • Получите путь, сообщенный /new/Qt/location/bin/qmake -query QT_INSTALL_PREFIX. Скажи, что сообщает /Parent/Dirs/Prefix.
  • Создайте любые родительские каталоги пути, например, mkdir -p /Parent/Dirs/
  • Симлинк на новое место, например ln -s /new/Qt/location /Parent/Dirs/Prefix

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

...