0

そこで、新しい Qt コンソール プロジェクトを開始しました。

これまでのところすべてうまくいっています。統合でEclipseをセットアップしましたが、実際には使用していません#include <QtGui>。呼び出しが機能するように、関連するQtディレクトリを含めただけです。

これらはすべて、これまでのところ完全に機能しています。

Eclipseのビルドオプションを使用するか、または実行してコンパイルできます

qmake -project
qmake
make

コマンドラインから。どちらも機能します。

私が持っているインクルードステートメント; それは:

#include <QtGui>
#include <QApplication>

2 つの異なるファイル。

ただし、別のものを追加すると、つまり#include <QSqlDatabase>、eclipse はインクルードを認識し、新しい変数を初期化し、QSqlDatabase クラスを使用できるようにします。すべて問題ないようです-ここを参照してください-Eclipseのスクリーンショット

ただし、プロジェクトをビルドすると、ファイルがすべてそこにあるにもかかわらず、ファイルが表示されないと判断されます。ターミナルでもここでそれらを参照してください。そして、日食はどこにでも赤い線を置きます

ディレクトリに移動し、ターミナル経由ですべてを実行しようとするとqmake -project; qmake; make、同じエラーが発生します。

ただし、.proによって作成されたファイルに移動しqmake -project、行を追加してQT += sqlから実行するqmake; makeと、すべて問題なく動作します。

qmake -projectこれらのファイルをプロジェクト ファイルから除外するのはなぜですか? ビルドするたびに手動でその行を追加する必要はありません...

4

1 に答える 1

2

qmake -project がこれらのファイルをプロジェクト ファイルから除外するのはなぜですか?

私の知る限り、qmake は人間のプログラマーに取って代わるものではありません。SQL の依存関係が検出されない理由を知りたい場合は、qmake のソース コードを参照してください。

ビルドするたびに手動でその行を追加する必要はありません...

ここで何か変なことをしようとしているようですね。すべてのビルドの前に qmake -project を呼び出す必要はありません。

qmake -project初期プロジェクト - *pro ファイルを生成します。初期プロジェクトが生成されたら、それを微調整して、必要に応じてオプションやマクロ マジックを追加できます。次に、*.pro ファイルを使用して、ビルド システム用のスクリプトを生成します (Windows 用の vcproj、windows/*nix 用の makefile、nmake make ファイルなど)。

ワークフローは次のようになります。

  1. qmake -project.
  2. 永遠に繰り返す:
    2.1. 生成された *.pro ファイルを好みに合わせて変更します。
    2.2 qmake
    2.3 ビルド システムを使用してビルドします。(nmake、make、ビジュアルスタジオなど)

単純に「ビルド」するには、#2.3 を実行するだけです。qmake*.pro ファイルを変更した場合にのみ、(-project なしで) スイッチを呼び出します。

詳細については、qtのドキュメントとチュートリアルを参照してください。

于 2012-05-23T16:35:19.683 に答える