一、开源库的使用方法(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-gccAR=arrc改为AR=arm-linux-arrcAR2=ranlib改为 AR2=arm-linux-ranlib(4)编译make(5)安装makeinstall-lib安装就是将编译生成的库文件、头文件、可执行文件分别装载到--prefix--exec-prefix所指定的那些目录中去。6.22.2.部署部署动态链接库一般有三个位置可以考虑:第一个:/lib第二个:/usr/lib第三个:任意指定目录