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