2009-08-07 15 views
20

Estuve buscando mucho a través de los foros de Qt y Google durante los últimos días, pero no pude encontrar ninguna respuesta obvia a esta pregunta.Cómo compilar qt fuera de la fuente

Encontré la opción -prefix (ni siquiera documentada en Windows) que se puede suministrar para configurar para especificar un directorio de instalación diferente, pero no está clara la separación de las fuentes y los binarios en absoluto, ya que la construcción aún se realiza en el directorio de origen y luego los archivos necesarios para la instalación se copian en el directorio de instalación. Intenté esta opción -prefix y tuve algunos problemas. (Es decir, No copia los archivos .pdb al directorio de instalación.)

Entonces me encontré this link de hacer sombra construye pero tiene la gran limitación de que el directorio de construcción debe estar al mismo nivel que el directorio de fuentes.


supongo que no intenta hacer instalar? Entonces intenta eso. Debe instalar Qt en un directorio separado lejos de las fuentes.

¿Está diciendo que después de configurar, debo hacer la instalación de nmake en su lugar simplemente nmake? Sé que nmake procesará los archivos make generados de qmake y los colocará en el directorio Qt de origen, pero lo que hará la instalación de nmake exactamente, es decir, en qué directorio instalarán los archivos y cómo especificar el directorio donde se instalarán los archivos.

Nota que ya hago esto:

configure -prefix builddir -platform win32-msvc2005 
nmake install 

El efecto de las dos líneas anteriores fue que qt fue compilado en el directorio de fuentes y no directamente a mi builddir especificado con prefijo. Luego, los archivos compilados fueron copiados en mi builddir. Esperaba algo que construyera mis archivos Qt directamente en el directorio de compilación, porque de esta manera aún necesito 4Gb de espacio para mi directorio de origen durante la compilación. Además, los archivos pdb no se copiaron en mi buildir, que es otro problema.

+0

¿Es posible construir usando cmake? –

+0

Esto describe una construcción fuera de la fuente para Qt: http://www.holoborodko.com/pavel/2011/02/01/how-to-compile-qt-4-7-with-visual-studio-2010/# comment-6641 – Dan

Respuesta

0

IIRC en Windows, tiene que hacer una instalación de recinto de seguridad, no puede hacer la "instalación" típica de UNIX.

Hay dos opciones por lo general para la construcción de Qt, -prefix-instalar y -prefix/foo

Debe elegir una, así que si -prefix no permite que escriba make install, entonces supongo que en Windows tiene que usar la ruta -prefix-install, que es una instalación de espacio aislado en el directorio donde extrae Qt.

Supongo que no intentó instalar make? Entonces intenta eso. Debe instalar Qt en un directorio aparte, lejos de las fuentes.

+0

¿Para qué programa '-prefix-install' y' -prefix/path' son opciones? No se mencionan en la salida de 'configure.exe --help' –

+0

Escribí esa respuesta hace 16 meses. Es posible que la configuración de Qt haya cambiado. – mxcl

14

Básicamente, solo tiene que ejecutar configure.exe desde su directorio de compilación. Por ejemplo:

mkdir \qt\4.5.2-build 
cd \qt\4.5.2-build 
set PATH=%cd%\bin;%PATH% 
\qt\4.5.2-sources\configure.exe -platform win32-msvc2005 

donde las fuentes están en \qt\4.5.2-sources, que causaría la acumulación de entrar en \qt\4.5.2-build en la unidad actual.

Además, debe tener perl en su PATH, se sugiere ActiveState Perl.

No había oído hablar previamente de esta limitación cuando los directorios de compilación y de origen deben estar en el mismo nivel.Si llega a este problema, puede intentar solucionarlo creando un enlace simbólico (consulte el comando mklink).

+0

Esto no funciona. El error dice que no puede incluir algún archivo .h – user152508

+0

¿Cuál es el error y de dónde sacaste las fuentes? – rohanpm

+0

el error está en la hora de configuración y dice que no puede incluir algunos qscriptengine.h. También en mi intento, el directorio de compilación no estaba en el mismo nivel que el directorio de origen (como en el manual de arriba). ¿Es esto relevante? – user152508

0

Al menos el problema con los archivos de inclusión faltados (por ejemplo, qscriptengine.h) puede resolverse mediante la adición temporal de \ qt \ 4.5.2-sources \ include \ Qt a la ruta include.

0

Moví la construcción de sombra de mi carpeta de inicio a una carpeta en C: y funcionó. Sé que es extraño, pero eso es lo que sucedió. Sospecho que debe ser un error en syncqt.

Cuestiones relacionadas