2009-05-27 1 views
15

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

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

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

ответ

9

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

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

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

+0

ОП спросил, как это сделать без перекомпиляции, так что это не ответ – Dana

2

Как указывалось Хенрик Харц, QT_INSTALL_PREFIX встроен и не может быть изменен. Однако, если вы просто хотите работать с необходимостью rebuild 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 shared libs с вашим приложением для конечных пользователей (т. е. вы не будете отправлять заголовки или инструменты сборки).

30

Я изучал это и нашел способ, который работает (в 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-установку в любом месте.

+1

Кажется, что не работает с 4.8.2 под Linux ... – hmn

+0

Он работает для меня с 4.8.2. qt.conf должен находиться в том же каталоге, что и exec'd qmake. Вы можете создать временный каталог, сделать сим ссылку на/usr/bin/qmake (если это где qmake для вас) и добавить qt.conf в этот каталог. Если вы считаете, что не используете ваш qt.conf, попробуйте использовать strace или аналогичный, чтобы увидеть, какой qt.conf qmake пытается открыть. – Juan

+0

Я много лет использую Qt, не зная об этом !! Это работает, и это так здорово. Ссылка, которую вы предоставляете, устарела, но была перенесена на http://qt-project.org/doc/qt-4.8/qt-conf.html –