1

だから私は Q_OBJECT タグ付きのクラスを持っています。

私の .qbs ファイルには、CppApplicationアイテムがあります。moc ClassName.cppqbsはmocを生成するために呼び出されないため、これは間違ったタイプのプロジェクトのようです。代わりに何を使用/微調整する必要がありますか?

-

だから私は Qt.core の依存関係について知っていましたが、Qt の不自由なインストールでは機能していませんでした。私がそれを修正しようとしている間に、これらの事実が浮かび上がりました:

  • Qt ツールチェーン ( qbs-setup-qt) を検出して呼び出す必要がありました。qbs-config-ui
  • 実際、Qbs はビルド ルールを core.qbs に保存し、Qt/core 依存関係を介してリンクされます。
    • ビルド ルールをコピーして自分の .qbs ファイルに貼り付け、外部依存を回避することができます。私はこれを、本当に不自由なビルド システムにコードをデプロイするための汚いハックだと考えています (現在、Gentoo での Qt サポートについての言葉があります)。
4

1 に答える 1

2

アプリケーションの Qt モジュールへの依存関係を見逃している可能性があると思います。moc ファイルの生成規則は、Qt.core モジュールの一部です。この依存関係を次のように追加できます。

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

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

他のすべての Qt モジュールには Qt.core への暗黙的な依存関係があるため、別の Qt モジュール (この例では Qt.widgets) への依存関係がある場合、Qt.core への明示的な依存関係をスキップできます。

詳細については、http://doc.qt.io/qbs/qt-modules.htmlを参照してください。

于 2014-07-31T11:50:53.227 に答える