【发布时间】:2009-08-07 17:07:28
【问题描述】:
不知何故,这是我在多年编程中第一次遇到这个问题,我不确定有什么办法来处理它。
我正在将应用程序移植到 Linux 的过程中,其中一个目录中有一个头文件,它显然与标准 C 库中的头文件同名,并且当“cstdlib”包含在该目录中的另一个文件,它试图包含本地文件,而不是标准库中的正确文件。
特别是,文件名为“endian.h”,它试图从/usr/include/bits/waitstatus.h 中包含。因此,它试图包含 ./endian.h,而不是包含 /usr/include/bits/endian.h。没区别
我唯一的选择是将项目中的 endian.h 重命名为其他名称吗,还是有一种方法可以强制编译器在与首先包含它的文件相同的目录中查找?
编辑:
好吧,这只是我的一个愚蠢的错误。我的 Makefile 设置为 -I。 ,所以它首先在当前目录中查找。哦。
【问题讨论】:
-
我对名为“list”或“set”的文件也有同样的问题。
-
与昨天刚刚出现的stackoverflow.com/questions/1240761/… 非常相似。也许那里的答案之一是适用的。