+ -
当前位置:首页 → 问答吧 → [求助]glibc2.7编译不通过,大家帮忙看看哈,已经折腾了一天了,没有解决,只好上来求助了。

[求助]glibc2.7编译不通过,大家帮忙看看哈,已经折腾了一天了,没有解决,只好上来求助了。

时间:2008-10-19

来源:互联网

照着手册
http://lamp.linux.gov.cn/Linux/LFS-6.2/index.html
一步一步的做哈,不是很顺利,但总迈过去了两步哈。但是还是跨不过去第三步哈。
现在正在做的步骤http://lamp.linux.gov.cn/Linux/LFS-6...r05/glibc.html

做到make这一步的时候:
In file included from ../nptl/sysdeps/pthread/allocalim.h:21,
from ../include/alloca.h:20,
from ../stdlib/stdlib.h:497,
from ../include/stdlib.h:8,
from ../nptl/sysdeps/i386/i686/../tls.h:28,
from ../nptl/sysdeps/i386/i686/tls.h:34,
from ../include/tls.h:6,
from ../sysdeps/unix/sysv/linux/i386/sysdep.h:30,
from <stdin>:1:
../include/limits.h:125:26: error: limits.h: No such file or directory
make[2]: *** [/mnt/lfs/sources/glibc-build/tcb-offsets.h] Error 1
make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.7/csu'
make[1]: *** [csu/subdir_lib] Error 2
make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.7'
make: *** [all] Error 2
就是limits.h文件找不到哈。
我的系统是ubuntu8.04
$ uname -a
Linux pjincz 2.6.24-21-rt #1 SMP PREEMPT RT Mon Aug 25 19:24:40 UTC 2008 i686 GNU/Linux
附件里是我运行../glibc-2.7/configure --prefix=/tools --disable-profile --enable-add-ons --enable-kernel=2.6.0 --with-binutils=/tools/bin --without-gd --with-headers=/tools/include --without-selinux的日志
刚开始的时候遇到过awk的问题,不过安装完gawk3.1.6后就没有这个问题了。

下面是一些我尝试过的解决方法(都没有成功哈)

export C_INCLUDE_PATH="/tools/include" (问题依旧)

export C_INCLUDE_PATH="/tools/include/linux"
问题变为/mnt/lfs/sources/glibc-2.7/iconv/gconv_db.c找不到INT_MAX符号

发现INT_MAX被定义在/mnt/lfs/sources/glibc-2.7/include/limits.h于是乎
export C_INCLUDE_PATH="/mnt/lfs/sources/glibc-2.7/include/"
问题变为编译/mnt/lfs/sources/glibc-2.7/include/limits.h #include_next<limits.h>时找不到文件

export C_INCLUDE_PATH="/mnt/lfs/sources/glibc-2.7/include/:/tools/include/linux"
问题回到INT_MAX未定义

export C_INCLUDE_PATH="/tools/include/linux:/mnt/lfs/sources/glibc-2.7/include/"
问题变为limits.h死循环包含

打开/mnt/lfs/sources/glibc-2.7/include/limits.h,将#include_next<limits.h>明确改为#include<linux/limits.h>
问题依旧为INT_MAX未找到
export C_INCLUDE_PATH="/mnt/lfs/sources/glibc-2.7/include/:/tools/include"
但是我打开看gconv_db.c中明确的包含了limits.h。而且/mnt/lfs/sources/glibc-2.7/include/limits.h明确的定义了INT_MAX

@_@实在没招了,宏本来就够恐怖了。鬼知道是不是哪条#if语句引起的。大家谁遇到过不,帮忙看看哈。
要是实在还没招,我就硬来了,呵呵,直接在出错的地方前面#define一个INT_MAX
上传的附件
config.log.tar.gz (7.5 KB, 2 次查看)

作者: pjincz   发布时间: 2008-10-19

总感觉是打了不该打的补丁。

作者: 晨想   发布时间: 2008-10-19

^_^ 没有打任何补丁哈

作者: pjincz   发布时间: 2008-10-19

用 lfs 6.2 的手冊的方法 編譯glibc2.7 寒一個 ==!!!

如果lz 想用 glibc2.7 請參照 svn 版的 lfs 手冊 (2008年10月前的版本),
懷疑lz 沒有在 configure 前

代码:
echo "CFLAGS += -march=i486 -mtune=native" > configparms

作者: RTL   发布时间: 2008-10-20

^_^ 瞎折腾哈。。。。。我这人最能折腾了。。。。
马上看看2.7的手册去 嘿嘿。谢谢RTL帮忙哈。。。

作者: pjincz   发布时间: 2008-10-21

@_@ 就找到关于安装glibc2.8的不稳定日编译版
然后按照上面说的方法重新来了一次,还是limits.h文件找不到。。。
我就晕了哈。看样子不行阿,得老老实实的先按照手册走一边再说 ^_^
我再研究研究哈。不行的话就推倒重来了@_@

作者: pjincz   发布时间: 2008-10-21

换宿主系统吧!

如果那不准就先用 livecd,至少先有个可以确认没问题的宿主。

如果您用 livecd 做宿主,按您的步骤做仍有问题,那就是您自己的问题,
否则可以确认 ubuntu 8.04 不适合做宿主,这样也可以提醒后来者。

作者: 聚焦深空   发布时间: 2008-10-21

好象是路径有问题,但是limits.h这个文件是有的,只不程度里面定义了一个宏的问题,把这个路径交错引用了,导致找不到,在源码里面手动一下路径就好了,我也是这样搞过来的

作者: pinkme005   发布时间: 2008-10-22

谢谢大家帮忙哈,我现在正在犹豫,要不要继续这样折腾下去哈,还是先求稳,完全按照手册做一次。

^_^要不大家给点意见。

作者: pjincz   发布时间: 2008-10-23

我觉得LFS就是个折腾的过程,如果只是按照手册一路copy下去而不明白其中的很多东西,LFS成功了也没有什么意思

作者: lofeng410   发布时间: 2008-10-23

反正我觉得直接修改源码里面的include路径没有什么问题,我的GLIBC-2.7现在用得好好的,暂时还没有发现有什么编译,运行异常的

作者: pinkme005   发布时间: 2008-10-23

^_^ 3ks 那我继续折腾了,不过现在感觉上班了时间都不是自己的了哈。
我发现自己老倒霉了,嘿嘿,今天编译boost又没编译过去

作者: pjincz   发布时间: 2008-10-24

boost 我吃过很大的亏,结果最後还是等到 boost 出新版 1.35 才搞定

http://www.linuxsir.org/bbs/thread320391.html

今天最新版是 1.36 但未玩过,也不太算玩了

作者: d00m3d   发布时间: 2008-10-24

今天给同事装battery life tool kit 发现ubuntu连libdev X11lib都没有装
总要apt-get回来一番
建议楼主换livecd做宿主 少去很多烦恼

作者: ppluer   发布时间: 2008-10-24

吾用 Debian unstable 做 host,同样无往而不利,CLFS-SVN 都行 :)

作者: d00m3d   发布时间: 2008-10-24

折腾了半宿,还是没有搞定boost1.36,连1.33都没搞定哈。
最后还是拿qt4写了程序,汗。qt4 linux下倒是无所谓 win下好大的dll的说。。。。

作者: pjincz   发布时间: 2008-10-24

10月31 boost马上要出1.37了,好汗的说一句,发行密度怎么越来越高啊。
1.33->1.34 22个月
1.34->1.35 10个月
1.35->1.36 5个月
1.36->1.37 2个月????

作者: pjincz   发布时间: 2008-10-24

兄弟可否说说 boost 其实有何用途,谢谢。

作者: d00m3d   发布时间: 2008-10-24

boost的库还是很不错的哈。毕竟号称C++备用标准库哈。
我那个程序主要是用到多线程,恩恩,为了可移植么,呵呵。
所以哈就是pthread boost 还有qt4三选一哈(其他库我不会哈)
其实最理想的是boost,依赖比较小,可移植和健壮性最大。qt4实在太庞大了。
事实证明boost库不是一般的强悍哈,今天我用stl和boost把代码重构了。
重构前我的程序中某个函数peek时间是0.109微秒,分析得知主要瓶颈在qt4的tss(线程附加数据)库哈。
重构完后竟然反而上升到了0.334微秒,汗一个,分析了一下,发现stl的hash_map竟然占据了93.7%的时间,我晕。
干掉stl的hash_map换成qt4的QHash,时间下降到了0.051微秒,Happy啊。
boost的线程库可见强悍啊,Qt4的QHash速度也不是徒有虚名哈,不过stl倒是让我伤心了老一阵子哈。

作者: pjincz   发布时间: 2008-10-27

引用:
作者: pjincz
boost的库还是很不错的哈。毕竟号称C++备用标准库哈。
我那个程序主要是用到多线程,恩恩,为了可移植么,呵呵。
所以哈就是pthread boost 还有qt4三选一哈(其他库我不会哈)
其实最理想的是boost,依赖比较小,可移植和健壮性最大。qt4实在太庞大了。
事实证明boost库不是一般的强悍哈,今天我用stl和boost把代码重构了。
重构前我的程序中某个函数peek时间是0.109微秒,分析得知主要瓶颈在qt4的tss(线程附加数据)库哈。
重构完后竟然反而上升到了0.334微秒,汗一个,分析了一下,发现stl的hash_map竟然占据了93.7%的时间,我晕。
干掉stl的hash_map换成qt4的QHash,时间下降到了0.051微秒,Happy啊。
boost的线程库可见强悍啊,Qt4的QHash速度也不是徒有虚名哈,不过stl倒是让我伤心了老一阵子哈。
原来LZ是达人 呵呵

作者: ppluer   发布时间: 2008-10-27

瞎折腾哈。。。。
郁闷死我了哈,昨天的程序写完了后在win-msvc下编译不过去
一狠心删除了大量的代码,这个心疼啊。。。
删除完代码后,在msvc上终于编译通过了,时间0.070微秒。
伤了。。。。彻彻底底的。不知道和我win下用的是boost1.33.1有没有关系哈。

作者: pjincz   发布时间: 2008-10-28

热门下载

更多