Pregunta

Entonces tengo una clase etiquetada Q_OBJECT, que requiere .moc pregenerado para ser utilizable.

En mi archivo .qbs, tengo un CppApplication artículo;este parece ser el tipo incorrecto de proyecto, ya que qbs no llama moc ClassName.cpp para generar moc's para mí.¿Qué debería usarse en su lugar/modificarse?

-

Sabía acerca de la dependencia de Qt.core, pero no funcionaba en mi instalación defectuosa de Qt;Mientras intentaba solucionarlo, surgieron estos hechos:

  • Era necesario detectar la cadena de herramientas Qt (qbs-setup-qt) y llama qbs-config-ui
  • De hecho, Qbs almacena las reglas de compilación en core.qbs, vinculadas a través de la dependencia Qt/core.
    • es posible copiar/pegar las reglas de compilación en mi propio archivo .qbs y evitar dependencias externas;Estoy considerando esto como un truco sucio para implementar el código en sistemas de compilación realmente dañados (ahora tengo una palabra para el soporte de Qt en Gentoo).
¿Fue útil?

Solución

Creo que es posible que le falte la dependencia de la aplicación de los módulos Qt.La regla para la generación de archivos moc es parte del módulo Qt.core.Podrías agregar esta dependencia con:

CppApplication {
    name: "MyApp"
    files: "path_to_source/**"

    Depends { name: "Qt.core" } // Optional
    Depends { name: "Qt.widgets" }
}

Como todos los demás módulos de Qt tienen una dependencia implícita de Qt.core, la dependencia explícita de Qt.core podría omitirse si existe una dependencia de un módulo Qt diferente (Qt.widgets en este ejemplo).

Se pueden encontrar más detalles en http://doc.qt.io/qbs/qt-modules.html

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