开源库的使用方法以及libjpeg的移植详解
一、开源库的使用方法 (1)移植(×××、解压、配置、修改Makefile、编译或交叉编译)。移植的目的是由源码得到三个东西:动态库.so,静态库.a,头文件.h (2)部署(部署动态库so、部署静态库.a和头文件.h) 动态库是运行时环境需要的,编译程序时不需要。 静态库是静态连接时才需要,动态链接时不需要。 头文件.h是在编译程序时使用的,运行时不需要的。 总结:静态库和头文件这两个东西,是在编译链接过程中需要的;而动态库是在运行时需要的。 所以动态库so文件是要放到开发板的文件系统中去的(放的过程就叫部署),把静态库.a文件和头文件.h文件放到ubuntu的文件系统中去。 (3)注意三个编译链接选项:-I -l -L -I是编译选项(准确的是说是预处理选项CFLAGS或者CPPFLAGS中指定),用来指定预处理时查找头文件的范围的。 -l是链接选项(LDFLAGS中指定),用来指定链接额外的库(譬如我们用到了数学函数,就用-lm,链接器就会去链接libm.so;那么我们使用了libjpeg,对应的库名字就叫libjpeg.so,就需要用-ljpeg选项去链接) -L是链接选项(LDFLAGS中指定),用来告诉链接器到哪个路径下面去找动态链接库。 总结:-l是告诉链接器要链接的动态库的名字,而-L是告诉链接器库的路径二、libjpeg的移植(1)×××、解压 (2)配置 ./configure --prefix=/opt/libdecode --exec-prefix=/opt/libdecode --enable-shared --enable-static -build=i386 -host=arm (3)Makefile检查,主要查看交叉编译设置是否正确 CC=gcc 改为 CC=arm-linux-gcc AR=ar rc 改为 AR=arm-linux-ar rc AR2=ranlib 改为 AR2=arm-linux-ranlib (4)编译 make (5)安装 make install-lib 安装就是将编译生成的库文件、头文件、可执行文件分别装载到--prefix --exec-prefix所指定的那些目录中去。 6.22.2.部署 部署动态链接库一般有三个位置可以考虑: 第一个:/lib 第二个:/usr/lib 第三个:任意指定目录
转载于:https://blog.51cto.com/10925070/1884536
开源库的使用方法以及libjpeg的移植详解相关推荐
- 从头开始写STM32F103C8T6驱动库(四)——编写延时函数,详解Systick
系列文章目录 Github开源地址 从头开始写STM32F103C8T6驱动库(一)--STM32CubeMX创建并调整工程结构 从头开始写STM32F103C8T6驱动库(二)--编写系统初始化程序 ...
- 计算机辅助药物设计的一般原理,朱瑞新着--_计算机辅助药物设计(Ⅰ)--基本方法原理概要与实践详解.pdf...
文档介绍: 计算机辅助药物设计 ------ 基本方法原理概要与实践详解作者朱瑞新 2011 年 1 月目录序前言第一章"计算机辅助药物设计"与 M OE 概貌一.导言二.&quo ...
- 【Android语音合成TTS】百度语音接入方法,和使用技巧详解
请尊重他人的劳动成果,转载请注明出处:[Android语音合成TTS]百度语音接入方法,和使用技巧详解 Ps. 依托于百度开放云,百度语音为合作伙伴提供了业界领先.永久免费的语音技术服务,目前已上线的 ...
- hp打印机没有右键扫描_安装HP打印机报错 0x000006be解决方法,图文操作步骤详解...
安装HP打印机报错 0x000006be解决方法,图文操作步骤详解 1. 首先打开控制面板 2.在程序和功能窗口中找是否有HP的打印机驱动,卸载掉 3.打开C:WindowsSystem32spool ...
- java8 方法引用详解_Java8中如何通过方法引用获取属性名详解
前言 在我们开发过程中常常有一个需求,就是要知道实体类中Getter方法对应的属性名称(Field Name),例如实体类属性到数据库字段的映射,我们常常是硬编码指定 属性名,这种硬编码有两个缺点. ...
- 三菱FX系列PLC模拟量输入AD模块的使用方法和相关编程设置详解
三菱FX系列PLC模拟量输入AD模块的使用方法和相关编程设置详解 本次以FX3U系列PLC的模拟量输入模块FX3U-4AD进行举例说明: 该模块的部分技术数据如下图所示, 该模块的接线端子排列 ...
- python中docx模块的使用_python使用docx模块读写docx文件的方法与docx模块常用方法详解...
一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就是说python-docx模块会把word文档,文档中的段落.文本.字体等都看做对象,对对象 ...
- 01.软件项目管理与敏捷方法——敏捷项目生命周期详解笔记
01.软件项目管理与敏捷方法--敏捷项目生命周期详解笔记 00.与其说是船还不如说是熟练的航行技术保证了成功的航行.--George William Curtis 01.敏捷项目是一个按照敏捷宣言宗旨 ...
- php自定义中文分词方法,PHPAnalysis中文分词类详解
PHPAnalysis是目前广泛使用的中文分词类,使用反向匹配模式分词,因此兼容编码更广泛,现将其变量与常用函数详解如下: 一.比较重要的成员变量 $resultType = 1 生 ...
最新文章
- 利用增强限制条件来求解问题
- 100个JavaScript代码片段
- Activiti工作流之流程变量
- Hive小文件问题:如何产生、造成影响、解放办法
- css 中文文字字体_使用CSS的网络字体
- python执行时间长被kill_用python记录运行pid,并在需要时kill掉它们的实例
- MyBatis框架 动态SQL
- java web access_Java Web项目中连接Access数据库的配置方法
- 抽取CNN网络任意层的特征,VGG模型fine-tuning实践
- 11.18 Apache用户认证11.19/11.20 域名跳转11.21 Apache访问日志
- educoder MongoDB 文档的高级查询操作
- 常用matlab画图命令 坐标轴倾斜
- android11系统原生铃声,原生系统的凤毛麟角 索尼Xperia 1 II推送Android 11体验
- DMG计算机,dmg文件怎么打开?dmg是什么意思?
- python为什么是蛇的天敌_蛇的天敌是什么?蛇獴对所有蛇毒免疫(成蛇类死对头)
- 支付宝身份认证初始化服务40004未知的错误码
- 几行代码轻松搞定网页简繁转换
- 【RocketMQ】玩转各种类型的消息
- [数据结构与算法]动态规划:扔鸡蛋问题
- 团体程序设计天梯赛-练习集——7-10 彩虹瓶 (25分)