1

automake が -I を追加しないようにするにはどうすればよいですか? 私のコンパイル行に?

automake または libtool オブジェクトには常に次のようなコンパイル コマンドがあるようです。

g++ -DHAVE_CONFIG_H -I. -I./proj/otherdir -o myprog.o myprog.c

問題は、同じ名前のヘッダー ファイルが 2 つあることです....

./proj/otherdir/Header.h
./proj/thisdir/Header.h

各ヘッダーには Header という名前のクラスがありますが、それぞれが異なる名前空間にあります。したがって、./proj/thisdir でビルドするときは、「-I.」含まれてしまい、./proj/otherdir のヘッダーにアクセスできません

その最初の「-I」を取り除く方法がわかりません。それが現れます。

ヒントはありますか?

ありがとうチェンツ

4

4 に答える 4

3

Makefile.am で設定するだけです。

DEFAULT_INCLUDES =

そして、すべてが世界で良いです。

チェンツ

于 2009-11-03T21:52:47.923 に答える
3

私が書いたときにAPIに異なるヘッダーが含まれている場合

#include <Header.h>

そのため、その API は混乱し、エラーが発生しやすくなります。

APIを次のように定義してみませんか

#include <thisdir/Header.h>

#include <otherdir/Header.h>

その後、必要に応じて、同じソース ファイル内の両方のヘッダーを参照することもできます。インクルード行を読むだけで、実際に何が含まれているかがわかります。

于 2009-11-03T21:57:47.650 に答える
0

#include-I. は取り除かれませんが、ディレクティブに相対パスを入れることができます:

#include "../otherdir/Header.h"
#include "../thisdir/Header.h"
于 2009-11-03T22:26:49.223 に答える
0

アプリのconfigure.acまたはconfigure.inを調べてください。そこにあるはずです

于 2009-11-03T21:32:21.040 に答える