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