C++でコンパイルするプロジェクトをVSまたはmakeに設定する場合、サードパーティのライブラリのインクルードパスで使用される環境変数を設定するためのベストプラクティスは何ですか?変数にバージョン番号を含めますか?すなわち THIRD_PARTY_LIB_3_1_1 = C:3.1.1 \サードパーティ製\ \ライブラリ:その後、\ライブラリ\ 3.1.1サードパーティのライブラリへのインクルードパスのバージョン情報を環境変数に入れるのは良いですか?
\サードパーティとは、$(THIRD_PARTY_LIB_3_1_1が)あなたのパス
または THIRD_PARTY_LIB = Cを含んで含まれてい\しますあなたのインクルードパスに$(THIRD_PARTY_LIB)\ includeがある
バージョン番号を持つ利点は、あなたが指しているはずのバージョンを知っていることです。すべてのプロジェクト/ makeファイルを更新する必要があります。
環境変数にバージョン番号を持たない主な問題は、明示的ではなく、異なるバージョンを使用する2つのプロジェクトがある場合、メンテナンスの悪夢となり、ビルドを再現することはほとんど不可能です。
環境変数の代替はありますか?ライブラリとインクルードファイルへのパスをハードコーディングする際の問題は、変更を加えた場合、すべてのプロジェクトを通過して設定を変更する必要があることです。 – bpeikes
@bpeikes相対パスの使用は1つのオプションです。 * project *固有のハードコーディングされたパスを持つことは問題ありません。異なるマシン上の異なる人は、これらのことを混乱させるべきではありません。私はCMakeを使ってこの問題を解決することを好みます。 CMakeでは、環境変数が必要な場合は、すべてのビルドではなく、設定時にレンダリングされます。これにより、同じシステム上に2つの作業用バージョンを持つことができます。 –