0

私が図書館で働いているとしましょう、foo。ライブラリのソース ファイル内に、ライブラリのユーザーと同じ方法でヘッダーをインクルードしたいと考えています。

#include <foo/bar.hpp>

// code defining bar methods here

たとえば、ブーストでは、ブースト内の他のヘッダーのインクルードは、相対的な引用スタイル<boost/shared_ptr.hpp>ではなく、そのように行われます。"../shared_ptr.hpp"他のいくつかのライブラリがこれをどのように達成しているかを調べたところ、そのためにファイル レイアウトに冗長なディレクトリが追加されているようです。

既存のレイアウトを使用したソース管理が既にある場合、そのスキームに切り替えるのは面倒です。GNU make でそれを重ねるための最良の方法は何ですか? 私の唯一の考えは、すべてのビルドターゲットが依存するターゲットを追加して、ソースツリーの中にシンボリックリンクを持つ隠しフォルダーを作成し、その隠しフォルダーをインクルードパスに追加することです。おそらく、難読化されていない方法がありますか?

4

1 に答える 1

0

Makefile に INC オプションの -I gcc キーを使用できませんでしたか?

gcc:

gcc -c -I/home/joseph/dev/foo/headers

メイクファイル:

INC=-I/home/joseph/dev/foo/headers

この場合、この変更を行う場所は Makefile の 1 つだけです。

于 2012-11-15T07:41:25.447 に答える