主机环境:
RHEL6.0
kernel 2.6.32-220.2.1.el6.i686
gcc-4.4.6
 
1.zlib
http://sourceforge.net/projects/libpng/files/zlib/1.2.5/zlib-1.2.5.tar.bz2/download
cd zlib-1.2.5
./configure -shared
make LDSHARED="arm-unknown-linux-gnueabi-gcc -shared -Wl,-soname,libz.so.1" CC_FOR_BUILD="arm-unknown-linux-gnueabi-gcc" CC="arm-unknown-linux-gnueabi-gcc" LD="arm-unknown-linux-gnueabi-ld" CPP="arm-unknown-linux-gnueabi-g++ -E" AR="arm-unknown-linux-gnueabi-ar rc"
make
sudo cp -rf libz.s* /work/rhel/gcc-4.4.6-glibc-2.9/arm-unknown-linux-gnueabi/sysroot/usr/lib/
sudo cp -rf zlib.h /work/rhel/gcc-4.4.6-glibc-2.9/arm-unknown-linux-gnueabi/sysroot/usr/include
 
2.libpng
http://sourceforge.net/projects/libpng/files/libpng12/1.2.46/libpng-1.2.46.tar.bz2/download
cd libpng-1.2.46
./configure CC=arm-unknown-linux-gnueabi-gcc --build=i686-redhat-linux --target=arm-unknown-linux-gnueabi --host=arm-unknown-linux-gnueabi --prefix=/work/rhel/gcc-4.4.6-glibc-2.9/arm-unknown-linux-gnueabi/sysroot/usr
make
sudo make install
sudo cp -rf png.h pngconf.h /work/rhel/gcc-4.4.6-glibc-2.9/arm-unknown-linux-gnueabi/sysroot/usr/include
 
3.libjpeg
http://sourceforge.net/projects/libjpeg/files/libjpeg/6b/jpegsrc.v6b.tar.gz/download
cd jpeg-6b/
./configure CC=arm-unknown-linux-gnueabi-gcc --build=i686-redhat-linux --target=arm-unknown-linux-gnueabi --host=arm-unknown-linux-gnueabi --enable-shared --enable-static --prefix=/work/rhel/gcc-4.4.6-glibc-2.9/arm-unknown-linux-gnueabi/sysroot/usr
修改Makefile:
# library (.a) file creation command
AR= ar rc
# second step in .a creation (use "touch" if not needed)
AR2= ranlib
为:
# library (.a) file creation command
AR= arm-unknown-linux-gnueabi-ar rc
# second step in .a creation (use "touch" if not needed)
AR2= arm-unknown-linux-gnueabi-ranlib
#make: ./libtool: Command not found解决办法
#1拷贝libpng-1.2.46/libtool 到jpeg-6b/下
#2交叉编译libtool,并把bin/libtool拷贝到jpeg-6b/下
make 
sudo make install
 
4.libtiff
ftp://ftp.remotesensing.org/libtiff/tiff-4.0.0.tar.gz
cd tiff-4.0.0
./configure CC=arm-unknown-linux-gnueabi-gcc CXX=arm-unknown-linux-gnueabi-g++ --build=i686-redhat-linux --target=arm-unknown-linux-gnueabi --host=arm-unknown-linux-gnueabi --prefix=/work/rhel/gcc-4.4.6-glibc-2.9/arm-unknown-linux-gnueabi/sysroot/usr
make 
sudo make install
 
#编译libpng和libjpeg都出现了
./libtool: line 947: arm-unknown-linux-gnueabi-ranlib: command not found
#编译libtiff出现了arm-unknown-linux-gnueabi-g++: command not found
解决办法:
执行make install不要用sudo,先用su进入root用户再执行make install,再退出root用户
 
附libtool交叉编译方法
cd libtool-2.4.2/
./configure CC=arm-unknown-linux-gnueabi-gcc CXX=arm-unknown-linux-gnueabi-g++ FC=arm-unknown-linux-gnueabi-gfortran --build=i686-redhat-linux --target=arm-unknown-linux-gnueabi --host=arm-unknown-linux-gnueabi --prefix=/work/rhel/gcc-4.4.6-glibc-2.9/arm-unknown-linux-gnueabi/sysroot/usr
make 
sudo make install
 
注:执行make install要用管理员权限的原因是我的工具链里面是只读权限,没有写权限

为arm-unknown-linux-gnueabi-gcc工具链添加常用库(zlib、libpng、libjpeg、libtiff、libtool)(转载)的更多相关文章

  1. mac上编译 arm linux gnueabi交叉编译工具链toolchain

    crosstool-ng 编译和安装 交叉编译工具下载: git clone git@github.com:secularbird/crosstool-ng.git   切换到mac编译分支 git ...

  2. Ubuntu安装ARM架构GCC工具链(ubuntu install ARM toolchain)最简单办法

    一.安装ARM-Linux-GCC工具链 只需要一句命令: sudo apt-get install gcc-arm-linux-gnueabi 前提是你的Ubuntu系统版本是官网支持的最新的版本, ...

  3. 【转】Ubuntu安装ARM架构GCC工具链(ubuntu install ARM toolchain)最简单办法

    原文网址:http://www.cnblogs.com/muyun/p/3370996.html 一.安装ARM-Linux-GCC工具链 只需要一句命令: sudo apt-get install ...

  4. HC32L110(三) HC32L110的GCC工具链和VSCode开发环境

    目录 HC32L110(一) HC32L110芯片介绍和Win10下的烧录 HC32L110(二) HC32L110在Ubuntu下的烧录 HC32L110(三) HC32L110的GCC工具链和VS ...

  5. 更换gcc工具链

    title: 更换gcc工具链 date: 2019/1/16 19:27:51 toc: true --- 更换gcc工具链 下载后解压到一个临时目录先看看文件结构 mkdir tmp tar xj ...

  6. 在Linux使用GCC编译C语言共享库

    在Linux使用GCC编译C语言共享库 对任何程序员来说库都是必不可少的.所谓的库是指已经编译好的供你使用的代码.它们常常提供一些通用功能,例如链表和二叉树可以用来保存任何数据,或者是一个特定的功能例 ...

  7. HK32F030MF4P6的Linux GCC工具链和VSCode开发环境

    HK32F030MF4P6简介 航顺的 HK32F030MF4P6, TSSOP20封装, Arm Cortex M0 内核, 内建32MHz时钟, 16K Flash, 2K RAM(实际上可用的有 ...

  8. linux driver ------ 交叉工具链(cross toolchain)

    在 ARM Linux 的开发中,人们趋向于使用 Linaro(http://www.linaro.org/)工具链团队维护的 ARM 工具链,它以每月一次的形式发布新的版本,编译好的可执行文件可以网 ...

  9. ARM裸机开发之交叉工具链和MakeFile工程管理

    一.交叉工具链 嵌入式Linux开发采用交叉开发,简单来说就是在宿主机(PC机)上面编译出能够在其他硬件平台上面运行的程序.在这个过程中,需要用到许多的交叉工具,这些交叉工具的集合就叫做交叉工具链.下 ...

随机推荐

  1. 我的python面试简历

    分享前一段我的python面试简历,自我介绍这些根据你自己的来写就行,这里着重分享下我的项目经验.公司职责情况(时间倒序),不一定对每个人适用,但是有适合你的点可以借鉴 我的真实经验:(14年毕业,化 ...

  2. 从国内APP更新“精雕细琢” 看国内外产品理念之差

    看国内外产品理念之差" title="从国内APP更新"精雕细琢" 看国内外产品理念之差"> 对于当下的大众来说,智能手机已经成为新的" ...

  3. JavaScript的封装和继承

    提到JavaScript"面向对象编程",主要就是封装和继承,这里主要依据阮一峰及其他博客的系列文章做个总结. 继承机制的设计思想 所有实例对象需要共享的属性和方法,都放在这个对象 ...

  4. Vue.js——学习笔记(一)

    Vue-自学笔记 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅 ...

  5. bootstrap简介与入门

    bootstrap前端框架 1.概念:一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JavaScript 的,它 ...

  6. javascript常用工具函数总结(不定期补充)未指定标题的文章

    前言 以下代码来自:自己写的.工作项目框架上用到的.其他框架源码上的.网上看到的. 主要是作为工具函数,服务于框架业务,自身不依赖于其他框架类库,部分使用到es6/es7的语法使用时要注意转码 虽然尽 ...

  7. Java基础--数组的定义

    1.数组的定义 数组:一组能够储存相同数据类型值的变量的集合. 2.数组的赋值方式 (1)使用默认的初始值来初始化数组中的每一个元素 语法:数组元素类型[]数组名 = new数组元素类型[数组中元素的 ...

  8. 峰哥说技术:04-Spring Boot基本配置

    Spring Boot深度课程系列 峰哥说技术—2020庚子年重磅推出.战胜病毒.我们在行动 04 Spring Boot基本配置 1)容器的相关配置 在Spring Boot中可以内置Tomcat. ...

  9. url,href和src的区别,defer和async的区别

    URL(Uniform Resource Locator):统一资源定位符,互联网上的每个文件都有一个唯一的URL,基本URL包含协议,IP地址,路径和文件名. 重点:herf和src的区别 href ...

  10. java算法--普通队列

    数据结构队列 首先明确一下队列的概念. 队列是一种有序列表,使用数组的结构来存储队列的数据. 队列是一种先进先出的算法.由前端加入,由后端输出. 如下图: ​ 第一个图 第二个图 第三个图 这就是队列 ...