开源库的使用方法以及libjpeg的移植详解
admin
2023-08-02 00:20:06
0

一、开源库的使用方法
(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
第三个:任意指定目录


相关内容

热门资讯

广西村民被蛇咬伤撑了两天后离世... 封面新闻记者 杨峰 广西横州报道受2026年第10号台风“美莎克”影响,7月6日广西横州市六蓝水库发...
圆通、中通、韵达等发布告客户书 7月9日,圆通速递、中通快递等多家物流企业相继发布告客户书,提醒受今年第 9 号超强台风 "巴威" ...
市政协领导分赴一线督查指导防汛... 今年第9号台风“巴威”(超强台风级)逐步逼近,温州市气象台于7月9日19时5分发布温州市区台风蓝色预...
原创 七... 2025年度国家科学技术奖揭晓,韦东奕凭借《流动转捩机理的数学研究》,斩获国家自然科学奖二等奖。 虽...
上虞:抢抓防台“窗口期” 提前... 【本站7月9日讯】为有效防范今年第9号台风“巴威”,上虞区坚持关口前移、提前部署,坚持“一个目标、四...
男子隐私部位被割断,医生接回!... 6月某天的中午,25岁的小张经历了一场突如其来的意外,阴茎遭受利刃伤害,“命根子”险些没了。
消息人士:穆杰塔巴不太可能出席... 据CNN报道,一位地区消息人士透露,伊朗新任最高领袖穆杰塔巴不太可能按照伊斯兰革命卫队的建议,出席其...
内塔尼亚胡与特朗普通话,商定保... 当地时间9日晚间,以色列总理办公室发表声明称,以总理内塔尼亚胡当晚与美国总统特朗普通电话,双方商定将...
华电科工获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示华电科工(601226)新获得一项实用新型专利授权,专利名为“...
中集集团获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示中集集团(000039)新获得一项实用新型专利授权,专利名为“...