どのように私は-Iを追加するのはautomakeを停止します。私のコンパイル行に?
質問
どのように私は-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"
所属していません StackOverflow