主机环境:
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. Dungeon Master (三维BFS)

    题目: You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed o ...

  2. 多线程的lock功能

    import threading def job1(): global A, lock lock.acquire() for i in range(10): A += 1 print('job1', ...

  3. 从iPhone X到三星S9,为何现在山寨还能如此肆无忌惮?

    X到三星S9,为何现在山寨还能如此肆无忌惮?" title="从iPhone X到三星S9,为何现在山寨还能如此肆无忌惮?"> 曾几何时,以"土豪金&qu ...

  4. Random Forest And Extra Trees

    随机森林 我们对使用决策树随机取样的集成学习有个形象的名字–随机森林. scikit-learn 中封装的随机森林,在决策树的节点划分上,在随机的特征子集上寻找最优划分特征. import numpy ...

  5. Python——12类的继承

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  6. JavaScript,ajax与springboot之间的传参方式

    Springboot:@PostMapping("/mDelTest")public String mDelTest (@RequestBody List<String> ...

  7. web前端——美化效果总结

    概述 项目开发过程中使用到了不少web前端美化效果的方法,总结一下 1 图片作为背景 要实现的效果是,任意一张图片"img-page-background.png",不需要调整图片 ...

  8. 移动端overflow失效问题

    在项目开发中,我们有时候需要实现元素从屏幕外移动到屏幕内的效果. 我们一般会有这样的方案:先通过position: absolution或transform: translate() 使得元素移动到屏 ...

  9. 前端性能优化之 Composite

    摘要: 一个 Web 页面的展示,简单来说可以认为经历了 JavaScript/Style/Layout/Paint/Composite 几个步骤.本文主要深入 Composite 部分,从渲染原理. ...

  10. python装饰器之函数作用域

    1.函数作用域LEGB L:local函数内部作用域 E:enclosing函数内部与内嵌函数之间 G:global全局作用域 B:build-in内置作用域 passline = 60 def fu ...