私は Visual C++ を使用してゲームに取り組んでいます。別々のプロジェクトにいくつかのコンポーネントがあり、プロジェクトの依存関係を設定しました。別のプロジェクトのヘッダー ファイルを #include するにはどうすればよいでしょうか。あるプロジェクトのクラスを別のプロジェクトで使用する方法がわかりません。
ベストアンサー1
コンパイラの設定
ヘッダーファイルを#includeしたいプロジェクトで別のプロジェクトでは、ヘッダーファイルのパスを追加のインクルードディレクトリプロジェクト構成のセクション。
プロジェクト構成にアクセスするには:
- プロジェクトを右クリックし、「プロパティ」を選択します。
- 構成プロパティ -> C/C++ -> 全般を選択します。
- 「追加のインクルード ディレクトリ」の下にパスを設定します。
含める方法
にヘッダーファイルをインクルードするコードに次のように記述するだけです。
#include "filename.h"
ディレクトリは既に「追加のインクルード ディレクトリ」に含まれているため、Visual Studio はディレクトリを検索する場所を認識しており、ここでパスを指定する必要はありません。
プロジェクト設定にすべてのヘッダー ファイルの場所を追加したくない場合は、あるポイントまでのディレクトリを含め、そのポイントを基準に #include を実行するだけで済みます。
// In project settings
Additional Include Directories ..\..\libroot
// In code
#include "lib1/lib1.h" // path is relative to libroot
#include "lib2/lib2.h" // path is relative to libroot
リンカーの設定
静的ライブラリ (.lib ファイルなど) を使用する場合は、リンカー入力にライブラリを追加して、リンク時にシンボルをリンクできるようにする必要があります (そうしないと、未解決のシンボルが取得されます)。
追加別のプロジェクトを参照として追加すると、リンカー入力に追加されます (プロジェクト プロパティ -> リンカー -> 入力 -> 追加の依存関係)。参照を追加するには、次の手順を実行します。
- ソリューション エクスプローラーのプロジェクトの下には参照ノードがあります。それを右クリックし、[参照の追加] を選択します。
- 選択する別のプロジェクトを選択し、[OK] をクリックします。
プロジェクトをビルドするとビルドが開始されます別の必要に応じてプロジェクトにリンクすると、リンカーは外部シンボルを解決できるようになります。