Подтвердить что ты не робот

Qmake и QT_INSTALL_PREFIX. Как выбрать новое место для библиотеки Qt?

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

Я переместил библиотеку Qt в другое место, и сгенерированные Makefiles начинали с/usr/локальным исходным путем.

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

В моем случае я добавил a 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-установку в любом месте.

Ответ 3

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

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

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

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