どのように私は-Iを追加するのはautomakeを停止します。私のコンパイル行に?

StackOverflow https://stackoverflow.com/questions/1670226

質問

どのように私は-Iを追加するのはautomakeを停止します。私のコンパイル行に?

automakeのか、libtoolのオブジェクトは常にに似たコンパイルコマンドを持っているようです

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

問題が

....私は同じ名前の2つのヘッダファイルを持っているということです
./proj/otherdir/Header.h
./proj/thisdir/Header.h
それぞれが異なる名前空間にあるが、

各ヘッダーは、ヘッダーという名前のクラスを有しています。だから私は、「-I。」./proj/thisdirに構築していますとき、含まれますと、私は./proj/otherdirのヘッダーに取得することはできません。

私はその初期を取り除く方法がわからない「-I。」それが表示されます。

任意のヒント?

のおかげで Chenz

役に立ちましたか?

解決

あなたがしなければならないのは、

Makefile.amに設定されています
DEFAULT_INCLUDES =

、その後、すべてが世界に良いです。

Chenz

他のヒント

私が書くとき、あなたのAPIが異なるヘッダが含まれている場合

#include <Header.h>

API混乱とエラーが発生しやすいということになり、そのます。

なぜ

のようなあなたのAPIを定義していません
#include <thisdir/Header.h>

#include <otherdir/Header.h>
必要に応じて

そして、あなたも同じソース・ファイル内の両方のヘッダを参照することができます。そして、あなたはそれが実際に含まれるどのような行が含まれ読むことだけを知っているだろう。

アプリのconfigure.acやconfigure.in探す場所は、そこにする必要があります。

これは-Iを取り除くしませんが、あなたはあなたの#includeディレクティブで相対パスを置くことができます:

#include "../otherdir/Header.h"
#include "../thisdir/Header.h"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top