主机环境:
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. Leetcode 981. Time Based Key-Value Store(二分查找)

    题目来源:https://leetcode.com/problems/time-based-key-value-store/description/ 标记难度:Medium 提交次数:1/1 代码效率 ...

  2. LeetCode~1033.移动石子直到连续

    1033.移动石子直到连续 三枚石子放置在数轴上,位置分别为 a,b,c. 每一回合,我们假设这三枚石子当前分别位于位置 x, y, z 且 x < y < z.从位置 x 或者是位置 z ...

  3. CentOS7 安装python 3.5 及 pip安装

    1.CentOS7 安装Python 的依赖包 # yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-d ...

  4. 后渗透之meterpreter使用攻略

    Metasploit中的Meterpreter模块在后渗透阶段具有强大的攻击力,本文主要整理了meterpreter的常用命令.脚本及使用方式.包含信息收集.提权.注册表操作.令牌操纵.哈希利用.后门 ...

  5. Hibernate入门之注解@Column详解

    前言 上一节我们讲解了Hibernate的主键生成策略,本节我们继续来讲讲Hibernate中针对列的映射即@Column注解,文中若有错误之处,还望指正. @Column注解详解 我们看到如上针对列 ...

  6. 解决ionic2/ionic3轮播图切换页面或者点击过后不自动轮图

    我们在ionic2/ionic3开发的过程中会出现切换页面或者滑动切换轮播图出现轮播图不再轮播的情况,这其实需要一些配置. 首先在运用到轮播图的component中引入 import {ViewChi ...

  7. fsLayuiPlugin联动表格使用(一)

    简单联动表格使用 点击主表格,加载副表格数据, 演示地址:http://fslayuiplugin.fallsea.com/views/linkageDatagrid/index.html 联动表格配 ...

  8. flask前端上传图片/文件

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Levenshtein Distance(编辑距离)算法与使用场景

    前提 已经很久没深入研究过算法相关的东西,毕竟日常少用,就算死记硬背也是没有实施场景导致容易淡忘.最近在做一个脱敏数据和明文数据匹配的需求的时候,用到了一个算法叫Levenshtein Distanc ...

  10. OpenMP Programming

    一.OpenMP概述 1.OpenMP应用编程接口API是在共享存储体系结构上的一个编程模型 2.包含 编译制导(compiler directive).运行库例程(runtime library). ...