コードを含むいくつかのディレクトリに分割されたプロジェクト (ライブラリ) があります。プロジェクトのルート ディレクトリにあるヘッダー ファイルを g++ で検索したいので、複数のソース ファイル間で同じヘッダー ファイルの異なるインクルード パスを回避できます。
主に、root/
ディレクトリにはサブディレクトリA/
と がB/
ありC/
、そのすべてに.hpp
と.cpp
ファイルが含まれています。A の一部のソース ファイルにfile.hpp
、B にあった を含めたい場合は、次のようにする必要があります#include "../B/file.hpp"
。C にあった別のソース ファイルについても同じです。ただし、A 自体に必要なファイルを含むサブディレクトリがある場合file.hpp
、一貫性がなく、ファイルを移動することにした場合にエラーが発生します (インクルード パスが になるため"../../B/file.hpp"
)。
また、これは の外部にある他のプロジェクトからも機能する必要がありますroot/
。すべてのヘッダー ファイルをデフォルトの検索ディレクトリに手動でコピーするオプションがあることは既に知っていますが、説明した方法でこれを行いたいと思います。
編集:ライブラリを使用するすべてのプログラムは、g++ prog.cpp lib.a -o prog
. これは、g++ のインクルード パスを永続的に設定することを意味します。