JPEG库在Linux系统下的编译和移植【转】
本文转载自:
这篇文章介绍了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系统下的编译和移植【转】的更多相关文章
- PCL库在Linux环境下的编译安装
PCL库在Linux环境下的编译安装 PCL库的源码库:https://github.com/PointCloudLibrary/pcl 下载完了之后解压下来 编译库的几个步骤 mkdir build ...
- 编译Linux系统下的jrtplib3.9和jthread1.3(arm和ubuntu)
最近由于学习需要,需要编译jrtplib,网上的资料基本上都是关于3.9以前的版本,而以前的版本基本上都是通过confiugre来配置生成Makefile,而最近的版本却没有这一项,而是使用cmake ...
- Linux系统下安装ncurses库
ncurses库是一个Linux系统下的图形支持的函数库,字符终端处理库,包括面板和菜单. 今天在安装ncurses库的时候遇到了一些问题,现将遇到的问题所叙如下: 首先说明:本次安装采用的是源码包的 ...
- 【转帖】Windows与Linux系统下的库介绍
Windows与Linux系统下的库介绍 http://embeddedlinux.org.cn/emb-linux/entry-level/200903/12-553.html 库的定义 库文件是一 ...
- linux系统下C语言调用lapack ,blas库
在利用C语言编程,经常调用其他的软件包,其中lapack,blas库是最常用的两个库,这里讲下在linux系统下,C语言编程如何调用这两个库: 1.首先讲下blas库的调用,这里以两个向量内积函数为例 ...
- 如何查看Linux系统下程序运行时使用的库?
Linux系统下程序运行会实时的用到相关动态库,某些场景下,比如需要裁剪不必要的动态库时,就需要查看哪些动态库被用到了. 以运行VLC为例. VLC开始运行后,首先查看vlc的PID,比如这次查到的V ...
- Linux系统下Apache2.4.17的安装过程
Linux系统下安装Apache Server2.4.17.还是先声明一下,Linux命令我不进行讲解,因为我不是讲Linux命令的.有需要注意的地方,我会上图,没什么值得的注意的地方,我就不上图了. ...
- 在Linux系统下安装大于mysql5.5版本的数据库
linux下mysql 5.5的安装方法: 1.安装所需要系统库相关库文件 gcc等开发包,在安装linux系统的时候安装. 2.创建mysql安装目录 # mkdir -p /usr/lo ...
- linux系统下svn服务器操作命令
linux系统下svn服务器操作命令 .输出指定文件或URL的内容. svncat 目标[@版本]…如果指定了版本,将从指定的版本开始查找. svncat -r PREV filename > ...
随机推荐
- 自动化项目配置或用例文件格式推荐--yaml
关于yaml YAML语言的设计目标,就是方便人类读写.如果你想要实现一些用ini不好做到的配置,可以使用yaml格式作为配置文件 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使 ...
- BZOJ 3926: [Zjoi20150]诸神眷顾的幻想乡
3926: [Zjoi20150]诸神眷顾的幻想乡 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 438 Solved: 273 Descripti ...
- HDU 5469 Antonidas
Antonidas Time Limit: 4000ms Memory Limit: 65536KB This problem will be judged on HDU. Original ID: ...
- K/3Cloud 分页报表示例参考
分页报表首先需要实现的方法就是GetList,这个方法用来获得分页的条件. 其他的就和其他报表类似了. using System; using System.Collections.Generic; ...
- Codevs 3409 搬礼物
时间限制: 1 s 空间限制: 64000 KB 题目等级 : 青铜 Bronze 题目描述 Description 小浣熊松松特别喜欢交朋友,今年松松生日,就有N个朋友给他送礼物.可是要把这些礼 ...
- 前端学习之--html
html 文件就是充当模板使用,包含head头和body身体,body包含众多的标签,每个标签都使用尖括号包裹,内部由标签名和标签属性构成.其中标签分为2类: 1:块级标签,特点:占用一行,如:< ...
- Java操作XML牛逼利器JDOM&DOM4J
JDOM JDOM 是一种使用 XML(标准通用标记语言下的一个子集) 的独特 Java 工具包,用于快速开发 XML 应用 程序. JDOM 官方网站:http://www.jdom.org/ 利 ...
- Java并发包——Atomic操作
Java并发包——Atomic操作 摘要:本文主要学习了Java并发包下的atomic包中有关原子操作的一些类. 部分内容来自以下博客: https://blog.csdn.net/qq_303796 ...
- Java连接MySQL报错:CommunicationsException: Communications link failure
现象: 报错:Exception in thread "main" com.mysql.cj.jdbc.exceptions.CommunicationsException: Co ...
- 解决Coldfusion连接MySQL数据库的问题
在连接MySQL时,出现了如下错误: Connections to MySQL Community Server are not supported. Please contact MySQL to ...