Chinaunix

标题: busybox在FC8上编译出错 [打印本页]

作者: hgy1234    时间: 2009-08-30 16:19
标题: busybox在FC8上编译出错
busybox版本1.00,编译平台FC8,内核2.6.26.8-57.fc8-i686
出错信息如下:
gcc -I/opt/workspace/busybox-1.00/include -I/opt/workspace/busybox-1.00/include -I/opt/workspace/busybox-1.00/libbb -Wall -Wstrict-prototypes -Wshadow -g -D_GNU_SOURCE     -c -o /opt/workspace/busybox-1.00/libbb/procps.o /opt/workspace/busybox-1.00/libbb/procps.c
/opt/workspace/busybox-1.00/libbb/procps.c:15:22: error: asm/page.h: No such file or directory
make: *** [/opt/workspace/busybox-1.00/libbb/procps.o] Error 1

[root@FC8 src]# cd /
[root@FC8 /]# ll usr/src/kernels/2.6.26.8-57.fc8-i686/include/asm
lrwxrwxrwx 1 root root 7 2009-05-25 16:03 usr/src/kernels/2.6.26.8-57.fc8-i686/include/asm -> asm-x86
[root@FC8 /]# ll usr/src/kernels/2.6.26.8-57.fc8-i686/include/asm/page.h                /* 系统中asm/page.h 是存在的 */
-rw-r--r-- 1 root root 4603 2008-07-14 05:51 usr/src/kernels/2.6.26.8-57.fc8-i686/include/asm/page.h

不知道报错的信息中的asm/page.h是应该放在那里的page.h?请高手赐教!
作者: emmoblin    时间: 2009-08-30 16:42
编译的时候是不是得制定一下内核目录
作者: hgy1234    时间: 2009-08-30 16:52
标题: 回复 #2 emmoblin 的帖子
在rh9和FC3都可以编译通过的,不知道是不是因为内核头文件目录,发生了变化了?
以前好像都是在/usr/src/linux/include/
现在FC8则是在/usr/src/kernel/2.6.26.8-57.fc8-i686/include/
不知道这有没有影响?
一直以来都搞不明白linux的内核头文件路径和应用程序引用的系统头文件路径,应该是放在那里?代码编译的时候是靠什么找到这些头文件的?难道是gcc的-l参数?还是这些头文件在环境变量path里?
作者: 五岳之巅    时间: 2009-08-30 17:41
又一个这样的问题。
推荐搞嵌入式,正想自己做bootloader,文件系统,内核裁减的,主机使用redhat9。
你的问题是主机GCC版本和busybox所需的GCC软件版本不一致,不是越高版本的gcc越好,好像用3.2以上,比如3.3或4.3等(08年做的嵌入式系统,现在记得不是太清了)的gcc编busybox会发生很多错误,当然这不是你的错误,你的错误是使用了高版本的编译器,gcc、gdb、ld等等,都别太高了。最简单的方法就是直接全部安装redhat9。。。
作者: hgy1234    时间: 2009-08-30 22:06
标题: 回复 #4 五岳之巅 的帖子
谢谢4楼仁兄的指点!谢谢!

不过,我并不想搞嵌入式,只是想学习一下busybox的ash代码。
不好意思,钻个牛角尖,我觉得你说的gcc问题好像没有解释到点上,如果是gcc的问题,应该是语法的报错才是,怎会是报asm/page.h文件找不到?难道asm/page.h是gcc开发包带的?
而且,我一直很困惑linux头文件的include问题,不知道有何指点,或者是哪里有这方面的资料?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2