主机环境:
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. OAuth 2.0学习笔记

    文章目录 OAuth的作用就是让"客户端"安全可控地获取"用户"的授权,与"服务商提供商"进行互动. OAuth在"客户端&quo ...

  2. Android 粘合剂'Binder'

    背景知识 要详细掌握Android 的Binder通信机制需要先提前了解一些通信原理与Linux系统的基础知识. RPC RPC(Remote Procedure Call),即远程过程调用,也被称为 ...

  3. Android 绘制中国地图

    最近的版本有这样一个需求: 有 3 个要素: 中国地图 高亮省区 中心显示数字 面对这样一个需求,该如何实现呢? 高德地图 因为项目是基于高德地图来做的,所以很自然而然的想到了高德.但是当查阅高德地图 ...

  4. css进阶之二:flex弹性布局

    布局模式是指一个盒子与其兄弟.祖先盒的关系决定其尺寸与位置的算法.css2.1中定义了四种布局模式,分别是块布局.行内布局.表格布局.以及定位布局.css3引入了新的布局模式Flexbox布局,灵活度 ...

  5. 微软亚洲研究院开源图数据查询语言LIKQ

    ​ 近日,微软亚洲研究院通过GitHub 平台开源图数据查询语言LIKQ (Language-Integrated Knowledge Query).LIKQ是基于分布式大规模图数据处理引擎Graph ...

  6. Redis list实现原理 - 双向循环链表

    双向链表 双向表示每个节点知道自己的直接前驱和直接后继,每个节点需要三个域 查找方向可以是从左往右也可以是从右往左,但是要实现从右往左还需要终端节点的地址,所以通常会设计成双向的循环链表; 双向的循环 ...

  7. idea通过maven打jar包不成功或无法加载主类或打成功也找不到jar包

    这个问题纠结了我一天,在网上也搜了一些方法,现在把我自己的处理过程记录一下,以方便遇到此类问题的小伙伴参考: 第一步:查看idea的jdk版本与Windows安装的jdk是不是同一个版本,如下图 第二 ...

  8. Asp.Net Core EndPoint 终点路由工作原理解读

    一.背景 在本打算写一篇关于Identityserver4 的文章时候,确发现自己对EndPoint -终结点路由还不是很了解,故暂时先放弃了IdentityServer4 的研究和编写:所以才产生了 ...

  9. 授人以渔式解析原生JS写轮播图

    需求与分析 需求:循环无缝自动轮播五张图,按左右箭头可以手动切换图片,鼠标点击轮播图下面按钮 1 2 3 4 5会跳转到对应的第1 2 3 4 5张图片.鼠标放到轮播图的图片上时不再自动轮播并且左右箭 ...

  10. Markdown For EditPlus插件发布(基于EditPlus快速编辑Markdonw文件,写作爱好的福音来啦)

    详细介绍: Markdown For EditPlus插件使用说明 开发缘由 特点好处: 中文版使用说明 相关命令(输入字符敲空格自动输出): EditPlus常用快捷键: 相关教程: English ...