LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1366|回复: 5

请教!uClinux编译错误(交叉编译器故障)

[复制链接]
发表于 2006-10-12 19:16:07 | 显示全部楼层 |阅读模式
系统中装有arm-elf-/arm-linux-两个编译器,make时显示cross_compile=arm-linux-,我的内核用的是linux-2.4.x,其下的makefile已经修改过,是arm-elf-,但是实际编译时uClinux还是在寻找arm-linux-,不知道uClinux是怎么链接到交叉编译器的,哪个文件控制着这些参数的设置,我也察看了uClinux-dist下的makefile,没有明显错误,哪位大哥知道的,麻烦指点一下,感激不尽!!!!!!
相关信息如下:
一、uClinux配置:GDB/ARMular/linux2.4.x/uClibc

二、uClinux-dist/linux-2.4.x/makefile编译器相关信息

# CROSS_COMPILE         = m68k-elf-
# CROSS_COMPILE         = arm-elf-
# CROSS_COMPILE         = h8300-elf-
# CROSS_COMPILE         = nios-elf-
# CROSS_COMPILE                = e1-coff-
ifndef CROSS_COMPILE
CROSS_COMPILE         =
endif

#
# Include the make variables (CC, etc...)
#

AS                = $(CROSS_COMPILE)as
LD                = $(CROSS_COMPILE)ld
CC                = $(CROSS_COMPILE)gcc
CPP                = $(CC) -E
AR                = $(CROSS_COMPILE)ar
NM                = $(CROSS_COMPILE)nm
STRIP                = $(CROSS_COMPILE)strip
OBJCOPY                = $(CROSS_COMPILE)objcopy
OBJDUMP                = $(CROSS_COMPILE)objdump
MAKEFILES        = $(TOPDIR)/.config
GENKSYMS        = /sbin/genksyms
DEPMOD                = /sbin/depmod
MODFLAGS        = -DMODULE $(ARCHMODFLAGS)
CFLAGS_KERNEL        =

三、uClinux-dist/makefile一级文件相关交叉编译器

# May use a different compiler for the kernel
KERNEL_CROSS_COMPILE ?= $(CROSS_COMPILE)
ifneq ($(SUBARCH),)
# Using UML, so make the kernel and non-kernel with different ARCHs
MAKEARCH = $(MAKE) ARCH=$(SUBARCH) CROSS_COMPILE=$(CROSS_COMPILE)
MAKEARCH_KERNEL = $(MAKE) ARCH=$(ARCH) SUBARCH=$(SUBARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE)
else
MAKEARCH = $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE)
MAKEARCH_KERNEL = $(MAKEARCH)  ARCH=$(ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE)
endif

四、make出错信息!
[root@dklinux uClinux-dist]# make
make -C tools/ucfront
make[1]: Entering directory `/root/src/uClinux-dist/tools/ucfront'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/root/src/uClinux-dist/tools/ucfront'
ln -sf /root/src/uClinux-dist/tools/ucfront/ucfront tools/ucfront-gcc
ln -sf /root/src/uClinux-dist/tools/ucfront/ucfront tools/ucfront-g++
ln -sf /root/src/uClinux-dist/tools/ucfront/ucfront-ld tools/ucfront-ld
make -C tools/sg-cksum
make[1]: Entering directory `/root/src/uClinux-dist/tools/sg-cksum'
make[1]: `cksum' is up to date.
make[1]: Leaving directory `/root/src/uClinux-dist/tools/sg-cksum'
ln -sf /root/src/uClinux-dist/tools/sg-cksum/cksum tools/cksum
make ARCH=armnommu CROSS_COMPILE=arm-linux-  ARCH=armnommu CROSS_COMPILE=arm-linux- -j1 -C linux-2.4.x  || exit 1
make[1]: Entering directory `/root/src/uClinux-dist/linux-2.4.x'
arm-linux-gcc -D__KERNEL__ -I/root/src/uClinux-dist/linux-2.4.x/include  -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fno-common -pipe -fno-builtin -D__linux__ -g -DNO_MM -mapcs-32 -march=armv4 -mtune=arm7tdmi  -msoft-float   -DKBUILD_BASENAME=main -c
-o init/main.o init/main.c
In file included from /usr/local/arm/3.3.2/arm-linux/sys-include/asm/pgalloc.h:20,
                 from /root/src/uClinux-dist/linux-2.4.x/include/linux/highmem.h:5,
                 from /root/src/uClinux-dist/linux-2.4.x/include/linux/pagemap.h:16,
                 from /root/src/uClinux-dist/linux-2.4.x/include/linux/locks.h:8,
                 from /root/src/uClinux-dist/linux-2.4.x/include/linux/blk.h:5,
                 from init/main.c:25:
/usr/local/arm/3.3.2/arm-linux/sys-include/asm/proc/cache.h: In function `flush_dcache_page':
/usr/local/arm/3.3.2/arm-linux/sys-include/asm/proc/cache.h:123: error: structure has no member named `i_mmap'
/usr/local/arm/3.3.2/arm-linux/sys-include/asm/proc/cache.h:123: error: structure has no member named `i_mmap_shared'
In file included from /root/src/uClinux-dist/linux-2.4.x/include/linux/pagemap.h:16,
                 from /root/src/uClinux-dist/linux-2.4.x/include/linux/locks.h:8,
                 from /root/src/uClinux-dist/linux-2.4.x/include/linux/blk.h:5,
                 from init/main.c:25:
/root/src/uClinux-dist/linux-2.4.x/include/linux/highmem.h:6:28: asm/kmap_types.h: 没有那个文件或目录
make[1]: *** [init/main.o] Error 1
make[1]: Leaving directory `/root/src/uClinux-dist/linux-2.4.x'
make: *** [linux] Error 1
 楼主| 发表于 2006-10-13 11:12:01 | 显示全部楼层
问题已解决~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-13 11:12:21 | 显示全部楼层
问题已解决~
回复 支持 反对

使用道具 举报

发表于 2006-10-13 13:41:02 | 显示全部楼层
请问你是怎么解决的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-13 13:58:28 | 显示全部楼层
/../uClinux-dist/vendors/config/armnommu/config.arch
回复 支持 反对

使用道具 举报

发表于 2006-10-13 22:55:56 | 显示全部楼层
多谢了!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表