qmake y QT_INSTALL_PREFIX. ¿Cómo puedo seleccionar una nueva ubicación para la biblioteca Qt?
Pregunta
Soy nuevo en QMake y estoy tratando de construir una aplicación existente. Qt se instaló originalmente en /usr/local/lib/Qt-4.3.5 y 'QMake -query QT_INSTALL_PREFIX' regresa ese camino.
He movido la biblioteca Qt a otro lugar y los Makefiles generados están salpicadas con la ruta / usr / local originales.
¿Cómo puedo forzar qmake a utilizar la nueva ubicación que he seleccionado sin tener que recompilar Qt?
Solución
Se trata de un 'incorporado' compilado en qmake de qconfig.cpp. La mejor manera es volver a configurar Qt con otro -prefix y reconstruir por desgracia. Para la mayoría de otras variables, puede utilizar un archivo .qmake.cache. Ver
http://doc.qt.digia.com/qt /qmake-environment-reference.html
Para obtener más información
Otros consejos
Yo estaba buscando en esto y encontré una manera que funcione (en 4.7.2 qt) mediante la personalización de qt con un archivo qt.conf
.
En mi caso, he añadido un qt4-4.7.2/bin/qt.conf
(Debe estar en el mismo lugar que el ejecutable qmake
)
Con el siguiente contenido:
[Paths]
Prefix = c:/my_path/to/qt4-4.7.2
y el -query qmake comenzó a devolver los caminos adecuados!
Ver: http://doc.qt.io/qt-4.8/qt-conf.html para más detalles
[Actualización:] Por lo menos desde Qt 5.3.1 (probado con versiones estáticas de 5.3.1 y 5.5 en Windows 8) se puede hacer simplemente
[Paths]
Prefix = ..
e implementar la instalación de Qt en cualquier lugar.
Como se ha señalado por Henrik Hartz, QT_INSTALL_PREFIX está incorporado y no se puede cambiar. Sin embargo, si lo que desea es evitar tener que reconstruir Qt temporalmente, a continuación, puede probar lo siguiente:
qmake de consulta por su prefijo instalar, volver a crear la estructura de directorios informado, y utilizar un enlace simbólico o HardLink a donde la versión de Qt es reubicado. P.ej. en Linux
- Obtener la ruta de lo informado por
/new/Qt/location/bin/qmake -query QT_INSTALL_PREFIX
. Decir esto informa/Parent/Dirs/Prefix
. - Crea cualquier directorio padre de la ruta, por ejemplo,
mkdir -p /Parent/Dirs/
- enlace simbólico a nueva ubicación, por ejemplo,
ln -s /new/Qt/location /Parent/Dirs/Prefix
Lo anterior también puede ser útil si usted tiene un montón de desarrolladores que necesitan trabajar con la misma versión de pre-compilados de Qt, en esta versión de Qt no necesariamente se copia en el mismo camino en las computadoras todos los desarrolladores, y donde sólo es necesario agrupar las librerías Qt compartido con usted aplicación para los usuarios finales (es decir, no serán envío cabeceras o construir herramientas).