Qmake и QT_INSTALL_PREFIX. Как выбрать новое место для библиотеки Qt?
Я новичок в qmake, и я пытаюсь создать существующее приложение. Qt был первоначально установлен в /usr/local/lib/Qt -4.3.5, и 'qmake -query QT_INSTALL_PREFIX' возвращает этот путь.
Я переместил библиотеку Qt в другое место, и сгенерированные Makefiles начинали с/usr/локальным исходным путем.
Как я могу заставить qmake использовать новое местоположение, которое я выбрал, без повторной компиляции Qt?
Ответы
Ответ 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 с вашим приложением для конечных пользователей (т.е. вы не будете отправлять заголовки или инструменты сборки).