如何从加入-I停止automake的。我的编译行?

看来的automake或libtool的对象总是具有类似于编译命令:

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

的问题是,我有具有相同名称的两个头文件....

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

每个报头具有一个指定的头类,虽然每个是在不同的命名空间。所以,当我建立在./proj/thisdir的“-I”。被包括在内,我不能得到在./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