急!大虾帮帮小弟。最近我要用到flash_eraseall工具,好擦除flash,往NAND上写yaffs文件系统。参考网上的做法下载了mtd-utils-1.0.0.tar 和 zlib-1.2.3.tar 。我的环境是centOS5.0 交叉编译器3.4.3下面是我的操作步骤,帮我看看有没有错误 首先交叉编译zlib。做法如下 make clean CC=arm-linux-gcc LDSHARED="arm-linux-ld -shared" ./configure --shared make make prefix=/usr/local/arm/v5t_le/rootfs install 这样在rootfs下有三个目录 include lib share在include目录里就有zlib.h我就把include里的头文件拷到了usr/include中。lib中有我们下一步用到的库文件 接着交叉编译mtd-util 修改Makefile SBINDIR=/usr/sbin MANDIR=/usr/man INCLUDEDIR=/usr/include 上面几句不知道什么意思,就没改 LDFLAGS := -L /usr/local/arm/v5t_le/rootfs/lib 添了这句,就是前面交叉编译出来的库 CROSS=arm-linux- CC := $(CROSS)gcc
make就出现了下面的错误arm-linux-gcc -I./include -O2 -Wall -g -c -o mkfs.jffs2.o mkfs.jffs2.c -g -Wp,-MD,.mkfs.jffs2.c.dep mkfs.jffs2.c:68:18: zlib.h: No such file or directory make: *** [mkfs.jffs2.o] Error 1 rm ftl_check.o mkfs.jffs.o flash_erase.o ftl_format.o nanddump.o doc_loadbios.o 把编译器换成3.3.2,步骤一样zlib.h找到了,链接又有错误 /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/bin/ld: ERROR: /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.oS) is compiled for EABI version 0, whereas mkfs.jffs2 is compiled for version 4 File format not recognized: failed to merge target specific data of file /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_modsi3.oS) mtd换成mtd-snapshot-20040730.tar也是找不到zlib.h 我都快急疯了,搞了一整天都没有结果!是不是zlib和mtd的版本不配套呢?真是搞不明白了! |