qmake и QT_INSTALL_PREFIX.Как выбрать новое место для библиотеки Qt?
Вопрос
Я новичок в qmake и пытаюсь создать существующее приложение.Qt изначально был установлен в /usr/local/lib/Qt-4.3.5, и 'qmake -query QT_INSTALL_PREFIX' возвращает этот путь.
Я переместил библиотеку Qt в другое место, и в сгенерированные файлы Makefile добавлен исходный путь /usr/local.
Как я могу заставить qmake использовать новое выбранное мной местоположение без перекомпиляции Qt?
Решение
Это «встроенная» функция, скомпилированная в qmake из qconfig.cpp.Лучший способ — переконфигурировать Qt с другим префиксом - и, к сожалению, пересобрать.Для большинства других переменных вы можете использовать файл .qmake.cache.Видеть
http://doc.qt.digia.com/qt/qmake-environment-reference.html
для получения дополнительной информации
Другие советы
Я изучал это и нашел способ, который работает (в 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 где угодно.
Как отметил Хенрик Харц, 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 с вашим приложением для конечных пользователей (т.е.вы не будете отправлять заголовки или инструменты сборки).