注意:linux编译库的时侯,注意不要置于linux和windows共享目录下。
///----------------------------------------------///
标明:
编译的时侯怎样处理:
-I+头文件的路径
联接的时侯怎样处理:
-L+库文件的路径-l库的名子-static
//------------------------------------------------///
下边举两种移植jpeg库到linux下编译的方式:
方式一:
用户自己指定库的目录。
首先:
下载、解压后就可以配置库的路径了。
配置方式:
运行一个配置脚本(configure),并向配置脚本传递配置参数:
--prefix--->安装库的路径
--host=arm-linux--->库工作的平台
--enable-shared--->生成动态共享库(*.so)
--enable-static--->生成静态库(*.a)
该脚本是在你解压的库的源码下就有configure的,
即运行:
./configure--prefix=/home/gec/libjpeg/libjpeg--host=arm-linux--enable-shared--enable-static
后面的--host=arm-linux表示该编译后的代码是在arm平台上运行的linux 移植配置编译linux视频,
--enable-shared表示动态库
--enable-static表示静态库
--prefix=/home/gec/libjpeg/libjpeg是表示将jpeg的库文件和库的头文件(也就是该库的所有文件)编译后放在/home/gec/libjpeg/libjpeg的目录下,若无此目录这么就创建目录linux 移植配置编译,若存在就不创建,直接加在对应的库文件、头文件上面。而不是将她们编译进交叉工具链里,所以在要编译的程序的Makefile中应当要加上/home/gec/libjpeg/libjpeg/include和-L/home/gec/libjpeg/libjpeg/lib
即:
CFLAGS=-Wall-g-c-I/home/gec/libjpeg/libjpeg/include
LDFLAGS=-L/home/gec/libjpeg/libjpeg/lib-ljpeg
程序的Makefile文件的更改
技巧二:
将编译后的库文件和库头文件放在交叉工具链下,这样的话就可以在使用工具链时手动将库文件、头文件联接过去。
因而可知编译进交叉工具链只需将其路径改为自己当前交叉工具链的路径即可,即:
#./configure--prefix=/usr/local/arm/4.5.1/arm-none-linux-gnueabi/libc/usr--host=arm-linuxCC=arm-linux-gcc--
enable-shared--enable-static
若编译进了交叉工具链这么就可将Makefile的库文件和库头文件的路径删掉,而毋须像法一那样要在所编译的应用程序上加上库路径。
所以可以:
CFLAGS=-Wall-g-c
LDFLAGS=-ljpeg
即可。
方式二程序的Makefile
最后,配置好了后执行make
再makeinstall
就完成了wps for linux,第二种方式弄的话直接在交叉工具链下对应的/usr/local/arm/4.5.1/arm-none-linux-gnueabi/libc/lib下可看见对应的动态库(后缀为.so)和静态库(后缀为.a)的jpeg库了以及在/usr/local/arm/4.5.1/arm-none-linux-gnueabi/libc/usr/include下可看见编译进来的jpeg头文件。
jpeg动态静态库的目录
jpeg库的头文件
而第一种方式的话须要到后面--prefix=/home/gec/libjpeg/libjpeg的路径下查看(路径可以自己改为自己想要的)。
注意法一和法二的区别。。。。。。
PS:限于作者的水平,对于文档中存在的不严谨甚至错误,希望诸位才能给以指教,本人联系邮箱。