template<class Cpp, class Qt, class ... Y_Mas>

[Nano-post] Qt, moc y cabeceras precompiladas

[Nano-post] Qt, moc y cabeceras precompiladas

    Estudiaremos cómo solucionar un error de compilación en ficheros moc de Qt.

Si vuestro proyecto Qt presenta las siguientes características (todas):

  • usa cabeceras precompiladas (PCH, PreCompiled Headers),
  • se compila en Visual Studio,
  • y usa compilación basada en Qt / MSBuild

podéis encontraros con que los ficheros generados por la herramienta de moc’ing de Qt (moc.exe) no compilan correctamente al no encontrar el fichero stdafx.h (o pch.h, o cualquiera sea el nombre de vuestro fichero de cabeceras precompiladas).

Recordad que estos ficheros moc’eados los genera Qt para ficheros con extensión (normalmente) .h que incluyen una clase con la macro Q_OBJECT. Así, por ejemplo, se genera el fichero moc_Header.cpp para el fichero Header.h.

Es posible solucionar este problema fácilmente entrando en la configuración de los ficheros de cabecera y forzar la inclusión del fichero de cabecera precompilado:

Qt moc PCH