Estoy tratando de construir un básico Qt «¡Hola, mundo!» aplicación dentro de Visual Studio.

Tengo el moc paso para trabajar (creo), pero ahora estoy en una pérdida en cuanto a cómo solucionar este error del vinculador:

1>moc_mainwindow.obj : error LNK2001: unresolved external symbol "public:
static struct QMetaObject const QMainWindow::staticMetaObject"
(?[email protected]@@[email protected]@B)

He hecho un montón de búsquedas, pero estoy en una pérdida.

Aquí están mis directorios de inclusión:

  • i:\Qt\4.6.3\include\QtCore;
  • i:\Qt\4.6.3\include\QtGui;
  • i:\Qt\4.6.3\include;
  • i:\Qt\4.6.3\include\ActiveQt;
  • reease;
  • .;
  • i:\Qt\4.6.3\mkspecs\win32-msvc2008

Aquí están las librerías me une contra:

  • i:\Qt\4.6.3\lib\QtGui4.lib;
  • i:\Qt\4.6.3\lib\QtCore4.lib;
  • gdi32.lib;
  • comdlg32.lib;
  • oleaut32.lib;
  • imm32.lib;
  • winmm.lib;
  • winspool.lib;
  • ws2_32.lib;
  • ole32.lib;
  • user32.lib;
  • advapi32.lib;
  • libpng.lib;
  • msimg32.lib;
  • shell32.lib;
  • kernel32.lib;
  • uuid.lib;

¿Alguien tiene alguna idea?

intente seguir los pasos aquí: stackoverflow.com/questions/5601950/… para mí funcionó como un encanto.

OriginalEl autor Evil Spork | 2010-06-13

5 Comentarios

  1. 6

    qmake generará el moc vudú desde el archivo de encabezado .pro archivo. Cuando no se están utilizando qmake, por el sonido, pero un nativo de proyecto de visual studio, esta es probablemente la causa del problema.

    Si utiliza qmake para generar su proyecto de visual studio todos tus problemas desaparecerán y la vida será dulce. Probablemente!

    Estoy usando el 2010.05; obviamente, usted quiere sustituir la ruta de acceso correcta para su versión.

    configurar el entorno

    inicio de 2010, el entorno de comandos desde el menú inicio

    -set incluye=%include%;C:\Qt\2010.05\qt\include

    -establecer lib=%lib%;C:\Qt\2010.05\qt\lib
    -set path=%path%;C:\Qt\2010.05\qt\bin

    -establecer QMAKESPEC=win32 msvc2010

    escribir el código, crear archivos, etc

    generar la inicial del pro y el makefile y el fuego VS

    -qmake -tp vc

    -qmake

    usted debe ahora tener un makefile – comprobar que funciona mediante la ejecución de:

    -nmake

    ahora el lanzamiento de visual studio

    -VCExpress.exe /useenv

    -XXX.vcxproj se pueden abrir ahora

    Si esto no funciona, usted puede necesitar para construir qt en contra de visual studio. Esto es muy sencillo: ir a la qt directorio (desde dentro de visual studio express ventana de comandos) y el tipo:

    configure.exe -platform win32-msvc2010 -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-multimedia -no-qt3support -fast
    Cuando me pongo de nuevo en la programación y Qt voy a dar a este un intento. Gracias por la clara direcciones.
    año y medio más tarde… yo obtener finalmente a la programación en Qt de nuevo, y sí, esta trabajado. Tal vez un poco torpe y complicado.. y supongo que tengo que volver a hacer un paso cada cierto tiempo para actualizar el moc archivos?

    OriginalEl autor jolyon

  2. 2

    Usted no puede instalar el Qt VS plugin en la edición Express de VC++. Suponiendo que tienes el moc para compilar, usted también necesita asegurarse de que usted está incluyendo en las bibliotecas (*.archivos lib) en el momento de enlazar. Esto va en el marco del Proyecto propiedades > Enlazador > Entrada > Dependencias Adicionales.

    Tendrá qtcore4.lib en un mínimo.

    También asegúrese de que la biblioteca Qt camino es en su ruta de búsqueda de biblioteca. En mi equipo es c:\qt\4.6.2\lib.

    sí, he construido el proyecto a través de qmake, y añadió que la libs (el cual tuve que modificar un poco) voy a actualizar con una lista de bibliotecas y de los caminos.

    OriginalEl autor Ben H

  3. 0

    Han de crear el proyecto de visual studio utilizando qmake primero? El problema parece ser el moc de compilación. ¿Tienes qt plug-in instalado y la ruta de qt en ecologico variables? Puede agregar hola mundo código para que yo pueda tener una mirada en ella?

    sus express, no puedo instalar un plugin.. y el código es más que solo un hola mundo.. es en la actualidad una línea de comandos del programa.. que estoy añadiendo un básico qt ventana vacía con el genérico auto creado clases. QApplication(argc, argv); MainWindow w; w.show(); return una.exec();
    Si usted no puede instalar el plugin en la edición express no estoy seguro de que puedo ayudar. Usted necesita para ser capaz de crear el moc archivos, estoy seguro de que puedes hacerlo manualmente desde la línea de comandos y, a continuación, intente cambiar el visual studio parámetros para hacer la compilación. Sin embargo, no creo que el depurador se va a trabajar muy bien en ese caso, ya que probablemente se trate de depurar el moc código con las señales y otros Qt macros en puro código C++. ¿Por qué no intentar QtCreator o Eclipse? ¿Necesita específicos de la funcionalidad de visual studio?
    compila bien en QtCreator, ese no es el problema. el problema es que yo necesito // el uso de visual studio 2008 o 2010.. y solo me han express.
    Que hacer las cosas muy complejas. No tengo idea de si es posible compilar en visual studio sin pug-in y que incluso si usted puede, como he dicho antes, probablemente, el depurador va a ser muy difícil de usar. Sé que es un dolor en el culo, pero me gustaría conseguir la edición estándar si realmente es obligatoria para el uso de visual studio. Siento no poder ayudarte más.
    bueno, yo tengo la versión estándar.. doloroso tener que pagar por esto.. pero aún más doloroso que me sale el mismo error. entonces, ¿cómo puedo resolver esto ahora?

    OriginalEl autor cnebrera

  4. 0

    Usted necesita para agregar comandos para generar QT metaclasses, a continuación, incluir también los archivos generados en el proyecto como el código de c++.

    La generación de la QT metaclasses:

    • Primero, agregar tu QT bin ruta de acceso en el Directorio Ejecutable. (Esto es en las Propiedades de Configuración > Directorios de VC++)

    • Agregar los archivos de Encabezado que contiene Q_OBJECT macros para el proyecto.

    • Multi-seleccione los archivos de encabezado, haga clic derecho en un archivo de encabezado, haga clic en Propiedades.

      • Cambio «Tipo de Elemento» de «C/C++ Encabezado» a «de generación Personalizada de la Herramienta».
      • Conjunto de línea de Comandos para esta: moc.exe "%(FullPath)" > "$(ProjectDir)MetaObjects\moc_%(Filename).cpp"
      • Descripción del conjunto a esto: QT: Generate $(ProjectDir)MetaObjects\moc_%(Filename).cpp (opcional)
      • Conjunto de Salidas a esta: $(ProjectDir)MetaObjects\moc_%(Filename).cpp
    • Ejecutar Construir solo para generar la metaobject código
    • Agregar la generada en C++ archivos desde el Directorio del Proyecto Metaobjects carpeta en el proyecto

    OriginalEl autor Dwedit

Dejar respuesta

Please enter your comment!
Please enter your name here