本文转载自:

这篇文章介绍了jpeg库在Linux系统下的编译和移植,经过了亲自的验证,编译首先需要准备以下资源:jpegsrc.v6b.tar.gz(jpeg库),libtool-1.5.26.tar.gz(编译需要的工具),交叉编译工具链(移植到ARM时使用)。

jpegsrc.v6b.tar.gz下载位置:http://115.com/?ct=rar&pickcode=attc36k1f57cah4dq

libtool-1.5.26.tar.gz下载位置:http://115.com/?ct=rar&pickcode=cmmen1rxdh968dbrl

交叉编译工具链下载位置:http://115.com/?ct=rar&pickcode=b33lpqa0qhm8i84xh

前提:编译时需要以root权限进行,JPEG的默认安装路径是/usr/local,无论打算将JPEG库安装在哪儿都必须保证你的安装目录下有以下几个目录:“include”,“lib”,“bin”,“man/man1”,如果没有就自己创建。

首先,先编译一个x86下的版本。1.先解压jpeg库“tar –zxvf jpegsrc.v6b.tar.gz”,解压完后生成一个叫“jpeg-6b”的目录。2.进入该目录配置编译选项“./configure --prefix=/home/jpeg_install/jpeg_x86--enable-shared --enable-static”。逐一解释一下各个选项,“--prefix=/home/jpeg_install/jpeg_x86”:指的是安装目录,这个安装目录下必须包含“include”,“lib”,“bin”,“man/man1”这几个目录;“--enable-shared”:指的是编译动态链接库;“--enable-static”:指的是编译静态链接库。3.配置完编译选项后目录下产生Makefile文件,执行make进行编译,这时编译很可能编译不过,出现以下的错误提示:

“./libtool--mode=compile gcc -O2  -I. -c./jcapimin.c

make: ./libtool:命令未找到

make: *** [jcapimin.lo] 错误 127”

分析一下错误的原因,打开Makefile文件,里面有这样一行“LIBTOOL = ./libtool”;说明编译时需要“libtool”这个工具,然而“jpeg-6b”没有该工具。4.编译libtool,先解压libtool-1.5.26.tar.gz生成一个叫libtool-1.5.26的目录,进入该目录,执行“./configure”;“make”;“make install”;执行完之后在该目录下就是生成了libtool工具,将libtool拷贝到“jpeg-6b”再次执行make进行编译,编译完成后执行“make install”进行安装;执行完毕后在安装目录的lib目录下就会生成所需要的动态链接库和静态链接库。

其次,编译一个arm的嵌入式版本。首先必须要导出交叉编译环境:“exportPATH=$PATH:/home/arm-linux/arm-2013.05/bin”。在之前的博文中有说如何安装交叉编译环境。1.交叉编译libtool:进入目录libtool-1.5.26执行“./configure --host=arm-none-linux-gnueabi”配置libtool的编译环境,参数“--hosting=arm-none-linux-guneabi”是指定交叉编译器的前缀,因为编译的是嵌入式的版本所以编译器需要选择交叉编译环境;配置完编译环境后执行make进行编译,编译完成后将 生成的libtool拷贝到jpeg-6b中。2.交叉编译jpeg库:进入jpeg-6b目录执行“./configure--host=arm-none-linux-gnueabi --prefix=/home/jpeg_install/jpeg_arm”。执行完成后会生成Makefile文件,但是现在还不能直接执行“make”进行编译,需要修改Makefile文件。打开Makefile文件 ,修改以下几句:“CC= arm-none-linux-gnueabi-gcc”;“AR= arm-none-linux-gnueabi-ar rc”;“AR2= arm-none-linux-gnueabi-ranlib”;修改这三句是更改编译环境,然后再执行“make”进行编译。编译完成后执行“make install”进行安装。安装完成后在“/home/jpeg_install/jpeg_arm/lib”会生成所需要的动态链接库,静态链接库(libjpeg.so,libjpeg.a)。

 
 

JPEG库在Linux系统下的编译和移植【转】的更多相关文章

  1. PCL库在Linux环境下的编译安装

    PCL库在Linux环境下的编译安装 PCL库的源码库:https://github.com/PointCloudLibrary/pcl 下载完了之后解压下来 编译库的几个步骤 mkdir build ...

  2. 编译Linux系统下的jrtplib3.9和jthread1.3(arm和ubuntu)

    最近由于学习需要,需要编译jrtplib,网上的资料基本上都是关于3.9以前的版本,而以前的版本基本上都是通过confiugre来配置生成Makefile,而最近的版本却没有这一项,而是使用cmake ...

  3. Linux系统下安装ncurses库

    ncurses库是一个Linux系统下的图形支持的函数库,字符终端处理库,包括面板和菜单. 今天在安装ncurses库的时候遇到了一些问题,现将遇到的问题所叙如下: 首先说明:本次安装采用的是源码包的 ...

  4. 【转帖】Windows与Linux系统下的库介绍

    Windows与Linux系统下的库介绍 http://embeddedlinux.org.cn/emb-linux/entry-level/200903/12-553.html 库的定义 库文件是一 ...

  5. linux系统下C语言调用lapack ,blas库

    在利用C语言编程,经常调用其他的软件包,其中lapack,blas库是最常用的两个库,这里讲下在linux系统下,C语言编程如何调用这两个库: 1.首先讲下blas库的调用,这里以两个向量内积函数为例 ...

  6. 如何查看Linux系统下程序运行时使用的库?

    Linux系统下程序运行会实时的用到相关动态库,某些场景下,比如需要裁剪不必要的动态库时,就需要查看哪些动态库被用到了. 以运行VLC为例. VLC开始运行后,首先查看vlc的PID,比如这次查到的V ...

  7. Linux系统下Apache2.4.17的安装过程

    Linux系统下安装Apache Server2.4.17.还是先声明一下,Linux命令我不进行讲解,因为我不是讲Linux命令的.有需要注意的地方,我会上图,没什么值得的注意的地方,我就不上图了. ...

  8. 在Linux系统下安装大于mysql5.5版本的数据库

    linux下mysql 5.5的安装方法: 1.安装所需要系统库相关库文件      gcc等开发包,在安装linux系统的时候安装. 2.创建mysql安装目录 # mkdir -p /usr/lo ...

  9. linux系统下svn服务器操作命令

    linux系统下svn服务器操作命令 .输出指定文件或URL的内容.  svncat 目标[@版本]…如果指定了版本,将从指定的版本开始查找. svncat -r PREV filename > ...

随机推荐

  1. tomcat——大致简介和执行过程

    jsp简介 JSP: JAVA Server Page 使用JAVA语言编写的一种在服务器运行的动态页面 JSP = JAVA + HTML JSP 的执行过程 1: 翻译阶段 把JSP源文件翻译成 ...

  2. 用spring annotation声明的bean,当打包在jar中时,无法被扫描到

    发现一个问题,十分蛋疼. 我们项目是由N个工程组成的,外围工程是web工程,内部的工程打包成jar,放入外围工程的WEB-INF/lib 内部的工程用到了spring的注解,例如@Service.@C ...

  3. 【Codeforces 140A】New Year Table

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 算出来每个盘子要占用多少角度. 然后乘n看看是不是小于等于2π就好 (精度最好定在1e-7) [代码] #include <bits/s ...

  4. poj2446 Chessboard 【最大匹配】

    题目大意:一个n*m的棋盘,某些格子不能用,问用1*2的骨牌能否完全覆盖这个棋盘,当然,骨牌不能有重叠 思路:显然黑白染色后,一个骨牌只能覆盖一个白色格子和一个黑色格子,然后我们间二染色建图,看能否有 ...

  5. Vijos1655 - 萌萌的糖果博弈

    Portal Description 两人轮流操作两堆初始数量分别为\(a,b(a,b\leq2^{127})\)的石子.每人每次进行如下操作: 取走一堆石子,并将另一堆分成两个非零堆. 如果另一堆只 ...

  6. 【DFS+剪枝】Square

    https://www.bnuoj.com/v3/contest_show.php?cid=9154#problem/J [题意] 给定n个木棍,问这些木棍能否围成一个正方形 [Accepted] # ...

  7. hdu3709 Balanced Number 树形dp

    A balanced number is a non-negative integer that can be balanced if a pivot is placed at some digit. ...

  8. Cloud BOS平台-自定义用户联系对象

    适用业务场景:新增用户时,联系对象类型默认为:职员.客户.供应商.客户需要增加一类"承运商",类型选择"承运商"时,联系对象只显示相应的承运商."承运 ...

  9. POJ 1094 Sorting It All Out【拓扑排序】

    题目链接: http://poj.org/problem?id=1094 题意: 给定前n个字母的大小关系,问你是否 根据前xxx个关系得到上升序列 所有关系都无法确定唯一的一个序列 第xxx个关系导 ...

  10. [Noip复习知识点][个人向]Zackzh

    只是列列一些要复习的,努力复习吧,有种noip退役的赶脚. 一.模拟 (这你也不会?退役吧) 二.DP 1.基础dp 2.区间dp 3.状压dp 4.树形dp 6.概率(期望)dp 7.环形dp 8. ...