Yourは、クラスの定義(つまり、ファイルの内容)を見つけることができる場所をコンパイラ#includeに伝えます。controllercontroller.h
クラスの実装に向けてリンクするためにcontroller、リンカーは既にコンパイルされた実装を含むライブラリを必要とします。- のファイルをプロジェクトに含めない限り、プロジェクトは の内容を再度Sub2コンパイルしませんが、これは悪い習慣であり、さらなる問題につながる可能性があります。Sub1.cppSub1Sub2
Sub1次のように生成されるライブラリであると仮定しsub1.libます。
プロジェクトの.proファイルに次の行を追加する必要があります。Sub2
LIBS += -L../Sub1 \
-lsub1
これは、ライブラリを含む "../Sub1" ディレクトリがあり、"sub1.lib" という名前のライブラリがあることをリンカに伝えます。-Land構文を使用する利点-lは、これがすべてのプラットフォーム (Windows、Linux、Mac など) で機能することです。
Sub1との両方Sub2が実行可能 (つまり、プロジェクトが.exe) ファイルを生成する場合、共通のコンテンツを別のプロジェクトに抽出する必要がSub3ありTEMPLATE = libます。TEMPLATE = app.pro