Pergunta

Portanto, tenho uma classe marcada com Q_OBJECT, que requer .moc pré-gerado para ser utilizável.

No meu arquivo .qbs, tenho um CppApplication item;este parece ser o tipo errado de projeto, pois qbs não chama moc ClassName.cpp para gerar mocs para mim.O que deve ser usado em vez disso/ajustado?

-

Então, eu sabia sobre a dependência do Qt.core, mas não estava funcionando na minha instalação deficiente do Qt;enquanto eu tentava consertar, estes fatos surgiram:

  • Foi necessário detectar o conjunto de ferramentas Qt (qbs-setup-qt) e ligue qbs-config-ui
  • Na verdade, o Qbs armazena as regras de construção em core.qbs, vinculadas por meio da dependência Qt/core.
    • é possível copiar/colar as regras de construção em meu próprio arquivo .qbs e evitar dependências externas;Estou considerando isso como um truque sujo para implantar o código em sistemas de compilação realmente deficientes (agora tenho uma palavra para suporte Qt no Gentoo).
Foi útil?

Solução

Acho que pode estar faltando a dependência do aplicativo nos módulos Qt.A regra para geração dos arquivos moc faz parte do módulo Qt.core.Você pode adicionar esta dependência com:

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

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

Como todos os outros módulos Qt têm uma dependência implícita do Qt.core, a dependência explícita do Qt.core pode ser ignorada se houver uma dependência de um módulo Qt diferente (Qt.widgets neste exemplo).

Mais detalhes podem ser encontrados em http://doc.qt.io/qbs/qt-modules.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top