GCC构build问题(#include_next limits.h)

当我尝试

  $ make depends -f gcc.mak 

我的Ubuntu机器上的中间件我得到这个

  /usr/include/../include/limits.h:125:26:错误:不包含要在其中searchlimits.h的path 

这是limits.h的内容:125:

 / *获取编译器的limits.h,它定义了几乎所有的ISO常量。

    我们把这个#include_next放在双重包含检查之外,因为
    应该有可能包含这个文件不止一次,仍然得到
    来自gcc头文件的定义。  * /
 #if defined __GNUC__ &&!defined _GCC_LIMITS_H_
 / *`_GCC_LIMITS_H_'是GCC文件定义的。  * /
 #include_next <limits.h>
 #万一

我试着设置

 $ export INCLUDE = / usr / lib / gcc / x86_64-linux-gnu / 4.3 / include-fixed /
 $ export C_INCLUDE_PATH = / usr / lib / gcc / x86_64-linux-gnu / 4.3 / include-fixed /
 $ export CPLUS_INCLUDE_PATH = / usr / lib / gcc / x86_64-linux-gnu / 4.3 / include-fixed /

(这是我在我的系统上find另一个limits.h的地方)。 我已经安装了libc6-dev,难道它的limits.h已被另一个包覆盖了吗? 我需要另一个-dev包吗? 或者是一个需要的环境variables; 也许这可以通过其他方式绕开?

Solutions Collecting From Web of "GCC构build问题(#include_next limits.h)"

你需要的软件包是glibc。

我遇到了与STLport 5.1.5编译的问题,但看起来问题是固定的是STLport 5.2.0。 STLport 发行说明中记录了该问题。 得到STLport 5.2.1的副本后,编译成功,没有打嗝。

我遇到了这个问题做一个交叉编译。 当你执行“make depend”时,Makefile会调用makedepend程序,如下所示:

MAKEDEPPROG=makedepend 

makedepend只搜索一些以/usr/include开头的默认包含目录

由于#include_next指令意味着在搜索路径中包含命名的包含文件的下一个找到的实例,如果没有找到另一个,这将失败。

对我来说,解决的办法是直接makedepend首先搜索我的交叉编译器include目录。 我通过更改MAKEDEPPROG赋值来包含-I指令来做到这一点:

 MAKEDEPPROG=makedepend -I < path/to/cross-compiler/include-fixed > 

我建议阅读关于makedepend程序(关于我以前什么都不知道)。 例如,makedepend不会使用环境搜索路径。 -I指令在makedepend的默认路径之前放置指定的搜索路径。

考虑使用#include_next <limits.h> (gcc扩展名),以强制gcc查看包含路径中的下一个找到的limits.h (应该是工具集的副本)。

我再也不记得这个决议了,但是这只是一些丢失的软件包。 apt-get更多的东西后,它为我工作。