JPEG库移植
第三方源码编译
Linux平台下有许多开源的第三方库和服务,这些开源代码一般都符合GNU-autotools编码规范,可以使用所谓 “三步曲” 来统一进行配置、编译和安装,如下:
1.配置:根据当前平台的具体情况,生成 Makefile 文件
gec@ubuntu:~$ ./configure
注意:
- 默认安装到 /usr/local 下,可以通过 --prefix= 来指定安装路径
- 默认使用的编译器是gcc,可以通过 --host= 来指定特定编译器的前缀
2.编译:根据生成的Makefile文件,指导当前平台的编译器编译所有的源码
gec@ubuntu:~$ make
3.安装:将编译和配置好了的库文件、头文件等内容统一存储到指定的位置
gec@ubuntu:~$ make install
在以上三个固定的步骤中,第一步配置一般来讲需要根据具体情况指定不同的配置参数,可以使用其自带的 --help 指令查看帮助信息,例如:
gec@ubuntu:~/jpeg-9a$ ./configure --help
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
...
...
每种不同的源码包所支持的配置参数都不尽相同,但有一些是比较通用且常用的,比如如下两个参数:
gec@ubuntu:~$ ./configure --prefix=/home/gec/jpg --build=arm-linux
解释:
- –prefix 用来指定安装路径,若没指定则默认是 /usr/local
- –build 用来指定编译器默认前缀,若没有指定则默认是 gcc/g++
JPEG库的交叉编译
JPEG(或称JPG)是一种图片格式,由于其先进的编码算法,兼具了低失真率和高压缩率,成为日常网络中最常见的图片格式。
libjpeg.so(源码)是典型的Linux下第三方开源库,专用于对JPG格式图片进行编解码,其编译过程符合典型的三步曲,具体如下:
下载完了之后,放到 Linux 系统中解压,值得注意的是,最好在家目录(:~/)下解压和编译、安装,不使用管理员权限,不使用 sudo ,否则很可能会导致后续的操作由于权限问题而出错。
2.1 操作步骤:
- 把压缩包
jpegsrc.v9d.tar.gz复制到 Ubnuntu 的家目录中 - 在家目录中创建一个用于安装jpg解码库的文件夹 Jpeg
- 对压缩包
jpegsrc.v9d.tar.gz进行解压tar -zxvf jpegsrc.v9d.tar.gz -C ~/jpeg-v9d - 解压后得到一个目录
jpeg-9d使用cd命令进入该目录
接着,在源码目录下进行经典的源码编译三部曲:
-
配置:
./configure -
编译:
make -
安装:
make install -
三部曲中第一步,配置编译规则
- 指定安装路径:
--prefix= - 指定工具链前缀:
--host= ./configure --prefix=~/jpeg-v9d/install --host=arm-linux- 配置完成后检查 checking whether we are cross compiling... yes 如果不是yes尝试重新执行配置选择项(更换路径尝试)
- 指定安装路径:
-
三部曲的第二步 编译
make等待编译结束即可
-
三部曲的第三步 安装
make install

浙公网安备 33010602011771号