Chinaunix首页 | 论坛 | 博客
  • 博客访问: 481723
  • 博文数量: 93
  • 博客积分: 1431
  • 博客等级: 上尉
  • 技术积分: 1006
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-18 10:30
文章分类

全部博文(93)

文章存档

2011年(20)

2010年(2)

2009年(71)

我的朋友

分类: LINUX

2009-04-07 16:43:45

 
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/是指交叉编译工具链的位置吗? 
阅读(1137) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~