一、开源库的使用方法
(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的移植详解相关推荐

  1. 从头开始写STM32F103C8T6驱动库(四)——编写延时函数,详解Systick

    系列文章目录 Github开源地址 从头开始写STM32F103C8T6驱动库(一)--STM32CubeMX创建并调整工程结构 从头开始写STM32F103C8T6驱动库(二)--编写系统初始化程序 ...

  2. 计算机辅助药物设计的一般原理,朱瑞新着--_计算机辅助药物设计(Ⅰ)--基本方法原理概要与实践详解.pdf...

    文档介绍: 计算机辅助药物设计 ------ 基本方法原理概要与实践详解作者朱瑞新 2011 年 1 月目录序前言第一章"计算机辅助药物设计"与 M OE 概貌一.导言二.&quo ...

  3. 【Android语音合成TTS】百度语音接入方法,和使用技巧详解

    请尊重他人的劳动成果,转载请注明出处:[Android语音合成TTS]百度语音接入方法,和使用技巧详解 Ps. 依托于百度开放云,百度语音为合作伙伴提供了业界领先.永久免费的语音技术服务,目前已上线的 ...

  4. hp打印机没有右键扫描_安装HP打印机报错 0x000006be解决方法,图文操作步骤详解...

    安装HP打印机报错 0x000006be解决方法,图文操作步骤详解 1. 首先打开控制面板 2.在程序和功能窗口中找是否有HP的打印机驱动,卸载掉 3.打开C:WindowsSystem32spool ...

  5. java8 方法引用详解_Java8中如何通过方法引用获取属性名详解

    前言 在我们开发过程中常常有一个需求,就是要知道实体类中Getter方法对应的属性名称(Field Name),例如实体类属性到数据库字段的映射,我们常常是硬编码指定 属性名,这种硬编码有两个缺点. ...

  6. 三菱FX系列PLC模拟量输入AD模块的使用方法和相关编程设置详解

    三菱FX系列PLC模拟量输入AD模块的使用方法和相关编程设置详解 本次以FX3U系列PLC的模拟量输入模块FX3U-4AD进行举例说明:  该模块的部分技术数据如下图所示,  该模块的接线端子排列 ...

  7. python中docx模块的使用_python使用docx模块读写docx文件的方法与docx模块常用方法详解...

    一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就是说python-docx模块会把word文档,文档中的段落.文本.字体等都看做对象,对对象 ...

  8. 01.软件项目管理与敏捷方法——敏捷项目生命周期详解笔记

    01.软件项目管理与敏捷方法--敏捷项目生命周期详解笔记 00.与其说是船还不如说是熟练的航行技术保证了成功的航行.--George William Curtis 01.敏捷项目是一个按照敏捷宣言宗旨 ...

  9. php自定义中文分词方法,PHPAnalysis中文分词类详解

    PHPAnalysis是目前广泛使用的中文分词类,使用反向匹配模式分词,因此兼容编码更广泛,现将其变量与常用函数详解如下: 一.比较重要的成员变量 $resultType   = 1        生 ...

最新文章

  1. 利用增强限制条件来求解问题
  2. 100个JavaScript代码片段
  3. Activiti工作流之流程变量
  4. Hive小文件问题:如何产生、造成影响、解放办法
  5. css 中文文字字体_使用CSS的网络字体
  6. python执行时间长被kill_用python记录运行pid,并在需要时kill掉它们的实例
  7. MyBatis框架 动态SQL
  8. java web access_Java Web项目中连接Access数据库的配置方法
  9. 抽取CNN网络任意层的特征,VGG模型fine-tuning实践
  10. 11.18 Apache用户认证11.19/11.20 域名跳转11.21 Apache访问日志
  11. educoder MongoDB 文档的高级查询操作
  12. 常用matlab画图命令 坐标轴倾斜
  13. android11系统原生铃声,原生系统的凤毛麟角 索尼Xperia 1 II推送Android 11体验
  14. DMG计算机,dmg文件怎么打开?dmg是什么意思?
  15. python为什么是蛇的天敌_蛇的天敌是什么?蛇獴对所有蛇毒免疫(成蛇类死对头)
  16. 支付宝身份认证初始化服务40004未知的错误码
  17. 几行代码轻松搞定网页简繁转换
  18. 【RocketMQ】玩转各种类型的消息
  19. [数据结构与算法]动态规划:扔鸡蛋问题
  20. 团体程序设计天梯赛-练习集——7-10 彩虹瓶 (25分)

热门文章

  1. 老梁观世界“20120713期 癌症女博士的生命箴言”
  2. 汇编--条件跳转指令
  3. 贝塞尔曲线(Bezier Curves)
  4. JS 表单和表单元素
  5. Linux驱动之平台设备
  6. 博耳电力中标上海万国数据中心项目
  7. springboot-24-restTemplate的使用
  8. 7 款从 HTML 文档提取文本的工具
  9. 【Hibernate】映射关系总结
  10. Hibernate4一对多关系映射(自身关联)