博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux移植jpeg库和常见错误
阅读量:4299 次
发布时间:2019-05-27

本文共 2095 字,大约阅读时间需要 6 分钟。

常规做法

一、移植

第1步:获取到 jpeg 库并解压后,使用下面命令进行配置

./configure --prefix=/home/gec/jpeg CC=arm-linux-gcc --host=arm-linux --enable-shared --enable-static

host:指定编译的命令

prefix :指定 在家目录下jpeg目录为jpeg库安装的位置,jpeg目录需要自行先创建好,同时也可以在jpeg目录下创建include、bin、lib三个目录。

第2步:进入解压好的jpeg-x目录下修改Makefile 文件,在第23、63、65行分别修改为下面代码

CC= arm-linux-gcc          //第23行AR= arm-linux-ar rc			//第63行AR2= arm-linux-ranlib		//第65行

注意:确保你的交叉编译工具链有导出到环境变量。即你在终端的任何目录下都可以使用 arm-linux-gcc -v 命令查看交叉编译工具链

第3步:使用make编译

注意:如果你是在普通用户下,建议先在make之前,手动在prefix指定的目录下创建include、bin、lib,防止因为权限不足而make失败。

第4步:使用make install命令进行安装

到这里就移植完成了,得到了在家目录下jpeg目录下lib目录中的动态链接库、静态链接库。和include目录下的头文件

二、部署

第1:在项目中创建一个libjpeg文件夹,把jpeg库lib、include的文件里的文件放到这个libjpeg文件夹中,方便编译的时候指定路径

注意:之后的编译命令需要指定头文件路径,和动态链接库路径和动态链接库名

如我之前的编译命令是arm-linux-gcc *.c -o main要改成下面的编译代码命令
编译代码命令arm-linux-gcc *.c -o main -I./libjpeg -L./libjpeg -ljpeg 意思解释如下
*.c :在项目目录下的所有.c文件(只有一个.c文件有main函数)
-I./libjpeg :指定第三方库的一个头文件路径
-L./libjpeg :指定第三方动态库的路径
-ljpeg :指定动态库的库名

第2:复制动态链接库(.so文件)到开发板根目录下的 /lib/ 里面,然后使用chmod 777 libjpeg.so去修改库权限。这样编译后的可执行程序就可以在开发板运行了

==============================================================================================

常见错误

make阶段出错1

./libtool --mode=compile arm-linux-gcc -O2  -I. -c ./jcapimin.cmake: ./libtool: Command not foundMakefile:143: recipe for target 'jcapimin.lo' failedmake: *** [jcapimin.lo] Error 127
  • 分析:没有libtool工具
  • 解决方案参考:

make阶段出错2

ln: failed to create hard link 'libjpeg.so.62' => 'libjpeg.so.62.0.0': Operation not permittedMakefile:171: recipe for target 'libjpeg.la' failedmake: *** [libjpeg.la] Error 1
  • 分析:出现这类问题,主要是由于在编译的时候,要用ln去建立一些硬链接或软链接,而这些文件是从Windows中,通过VMWare虚拟机共享进Linux的,而虽然此种操作在Linux系统中很常见,但Windows不支持,所以,编译会报错。
  • 解决方案:库源码包不要解压在共享文件夹中,更不要在共享文件夹中去安装库。

make install 阶段出错

/usr/bin/install -c -m 644 jconfig.h /home/gec/jpeg/arm-jpeg/include/jconfig.h/usr/bin/install: cannot create regular file '/home/gec/jpeg/arm-jpeg/include/jconfig.h': No such file or directoryMakefile:209: recipe for target 'install-headers' failedmake: *** [install-headers] Error 1
  • 分析:路径错误
  • 解决方案:在配置阶段 --prefix路径不对,或者路径对了就需要在指定安装jpeg库的目录下先自行创建include、bin、lib三个目录。

转载地址:http://hupws.baihongyu.com/

你可能感兴趣的文章
QThread线程注意事项
查看>>
时间函数
查看>>
Visual Studio中的各种工程属性设置经验
查看>>
C语言知识点积累
查看>>
记QDialog中exec、show、hide等函数要点
查看>>
Ubuntu14.04 Grunt 搭建自动化的web前端开发环境
查看>>
Git 常用命令
查看>>
SQLAlchemy 学习笔记
查看>>
Python Paste 学习笔记
查看>>
Python 包管理
查看>>
OpenStack mitaka DevStack 部署
查看>>
OpenStack Mitaka Dashboard
查看>>
OpenStack Horizon 参数设置说明
查看>>
自定义OpenStack Horizon(Mitaka)
查看>>
OpenStack Mitaka Horizon 主题开发
查看>>
Python 数据结构和算法
查看>>
OpenStack Mitaka keystone 分页(pagination)实现
查看>>
OpenStack删除Cinder盘失败解决办法
查看>>
Linux cpu 详解
查看>>
GitHub + Hexo 搭建个人博客
查看>>