1、编译libz:
首先安装 zlib 库,这个是后面的库的编译基础。
解压
tar zxf zlib-1.2.3.tar.gz
由于 zlib 库的configure 脚本不支持交叉编译选项,可以采用以下方法来解决:
1)CC=arm-linux-gcc
./configure --prefix=/usr/local/arm/2.95.3/arm-linux/ --shared
注意:这里配置指向 /usr/local/arm/2.95.3/arm-linux/ 目录,会自动安装在 /usr/local/arm/2.95.3/arm-linux/ [include,lib] 目录下,
千万不要装错目录了,不然后面会找不到这个库的。
2)make
3)make install
安装完后检查一下目录 /usr/local/arm/2.95.3/arm-linux/ [include,lib] ,假如 include 中没有 zlib.h 之类的头文件,lib 中没有 libz.so.1.2.3 ,那就自己手动拷到这些目录下去,记着拷的时候把所有的 *.h 都需要拷过去,在拷库的时候用 cp –a libz.* /…./lib 就行,要用上 –a 选项
2、编译mtd-utils:
下载mtd-utils-1.0.0.tar.gz:
解压目录为mtd-utils-1.0.0
#cd mtd-utils-1.0.0
1) 修改Makefile
CROSS=arm-linux-
2) make ( 用file命令查看,如 file mkfs.jffs2 )
#file mkfs.jffs2
mkfs.jffs2: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped
可知:交叉编译成功。
评论:
# re: mtd-utils编译 2009-03-16 16:27 |
请问一下,我在交叉编译zlib-1.2.3,和mtd-utlis-1.0.0,我这里没有/usr/local/arm/2.95.3/arm-linux/目录,所以我就放在了别的地方了,然后编译zlib没有提示出错,并且产生了share lib include三个文件夹,并且将include/* 拷贝到 mtd-utils-1.0.0/include 下
将lib、* 拷贝到我的交叉编译工具链文件夹/mnt/sdb/tools/arm-none-linux-gnueabi的lib目录下,然后make,出现
/mnt/sdb/tools/arm-none-linux-gnueabi/bin/../lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/bin/ld:cannnot find -lz
collect2: ld returned 1 exit status
make: *** [mkfs.jffs2] 错误 1
请问是哪里的错误,我觉得我没做错吧,除了那个拷贝到工具链不知道是不是
/usr/local/arm/2.95.3/arm-linux/是指交叉编译工具链的位置吗?
阅读(1168) | 评论(0) | 转发(0) |