Pregunta

Estoy tratando de construir el qtestlib / tutorial1 ejemplo , pero el testqstring.moc archivo no se está generando cuando corro nmake (Estoy corriendo Qt 4.5.2 en Windows XP SP3).
He copiado testqstring.cpp en el directorio del tutorial a mi directorio de construcción ( C: \ cajas de arena \ testqstring ) y desde la línea de comandos Qt corrió archivo vsvars32.bat de mi MS Visual estudio 8 de instalación para agregar las variables de entorno VS.

De acuerdo con el tutorial, que debería funcionar:

> qmake -project "CONFIG += qtestlib"
> qmake
> nmake

Cuando lo haga, la salida de nmake es:

  

C: /Apps/Qt/2009.03/qt/bin \ moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_TESTLIB_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I" .... \ Apps \ Qt \ 2009,03 \ qt \ include \ QtCore "-I" .... \ Aplicaciones \ Qt \ 2009.03 \ qt \ include \ QtGui "-I" .... \ Aplicaciones \ Qt \ 2009.03 \ qt \ include \ QtTest "-I" .... \ Aplicaciones \ Qt \ 2009.03 \ qt \ include "-I" ". -I ".... \ Apps \ Qt \ 2009,03 \ qt \ incluir \ ActiveQt" -I "debug" -I ".... \ Apps \ Qt \ 2009,03 \ qt \ mkspecs \ win32-g ++" -D__GNUC__ - DWIN32 testqstring.cpp -o debug \ testqstring.moc

     

g ++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_TESTLIB_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I ".... \ Apps \ Qt \ 2009,03 \ qt \ include \ QtCore" -I ".... \ Aplicaciones \ Qt \ 2009.03 \ qt \ include \ QtGui" -I ".... \ Aplicaciones \ Qt \ 2009.03 \ qt \ include \ QtTest" -I" .... \ Aplicaciones \ Qt \ 2009.03 \ qt \ include "-I" ". -I ".... \ Apps \ Qt \ 2009,03 \ qt \ incluir \ ActiveQt" -I "debug" -I ".... \ Apps \ Qt \ 2009,03 \ qt \ mkspecs \ win32-g ++" depuración -o \ testqstring.o testqstring.cpp

     

testqstring.cpp: 63: 27: testqstring.moc: Ningún archivo o directorio,
  NMAKE: fatal U1077 error: 'C: \ Apps \ Qt \ 2009,03 \ MinGW \ bin \ g ++ EXE.': Código de retorno '0x1'   Parar.
  NMAKE: U1077 error fatal: 'C: \ ~ 1 \ MICROS ~ 3 \ VC \ BIN \ Nmake.exe': código de retorno '0x2'   Parar.

Por lo tanto, puedo ver que moc.exe está siendo llamado para generar depuración / testqstring.moc, pero que no se genera el archivo.

Gracias por cualquier y toda la orientación que puede proporcionar.

¿Fue útil?

Solución

Parece que usted está tratando de utilizar nmake hacer una construcción con MinGW. nmake es una herramienta MSVC.

Si usted quiere hacer una versión con MinGW debe utilizar mingw32-make. Si usted quiere hacer una construcción con MSVC Debe utilizar un Qt construido con MSVC (que significa que tiene que construir por sí mismo o tener una licencia comercial).

Otros consejos

Yo tenía el problema de que el moc.exe no generó ningún archivo moc con nmake. La razón era un camino equivocado moc.exe dentro del Makefile.Debug.

Algo así como:

C: /Qt/2009.03/qt/bin \ moc.exe

lo cambio a:

C: \ Qt \ 2009,03 \ qt \ bin \ moc.exe

y ahora funciona. ;)

unfortunally qmake generará los archivos make cada vez que se ejecuta desde el menú o reconstruir / limpiar la solución / proyecto. Creo que es un error de la configuración qmake.

Para solucionarlo de forma permanente usted tiene que encontrar el archivo C: \ MyQtDir \ mkspecs \ win32-msvc2008 \ qmake.conf. Para otras configuraciones que tiene que cambiar win32-msvc2008.

Para mí fue en C: \ Qt \ 2009.03 \ qt \ mkspecs \ win32-msvc2008 \ qmake.conf

Búsqueda de la frase "QMAKE_MOC". Va a encontrar algunas líneas como la siguiente:

QMAKE_MOC               = $$[QT_INSTALL_BINS]\moc.exe
QMAKE_UIC               = $$[QT_INSTALL_BINS]\uic.exe
QMAKE_IDC               = $$[QT_INSTALL_BINS]\idc.exe

QT_INSTALL_BINS es un camino que parece estar mal. Los separadores de directorios están todavía '/', sino que debería ser '\'. Por el momento no sé exactamente dónde tengo que cambiar QT_INSTALL_BINS. Pero el camino qt no va a cambiar para mí, así que sustituye la macro mediante rutas de difícil definido:

QMAKE_MOC               = C:\Qt\2009.03\qt\bin\moc.exe
QMAKE_UIC               = C:\Qt\2009.03\qt\bin\uic.exe
QMAKE_IDC               = C:\Qt\2009.03\qt\bin\idc.exe

Ahora no hay problemas con el moc más. Reconstruye va a funcionar bien también.

Espero que esta ayuda;)

¿Ha intentado utilizar el compilador / herramientas incluidas con Qt en / MinGW / bin? (En mi sistema, Qt está instalado en C:. \ Qt \ 2009.03) Que yo sepa, la distribución no comercial de Qt no funcionará con Visual Studio. Acabo de intentar esto desde el símbolo del sistema de Qt y funcionó.

qmake -project "CONFIG += qtestlib"

qmake

mingw32-make

Espero que esto ayude.

Ar Seguro no se genera la moc? Vive en el directorio de depuración, por lo que será o bien tendrá que # include "Depuración / teststring.moc" o # include con una opción adicional -IDebug compilador.?

En caso de embargo compilar con VC nmake hay una solución para este error aquí: http://bugreports.qt-project.org/browse/QTBUG-6470

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top