以第三方库libjpeg为例,编译所需要的三步:
1、配置./configure
脚本参数,
./configure --prefix=/home/huanghaitao/Winshare/jpeg-9c/libjpeg CC=arm-linux-gnueabihf-gcc --host=arm-linux --enable-shared --enable-static
–prefix=(.a或者.so生成的目录),如果不填写这个参数,会有个路径,具体是哪里不记得了。
CC=(工具链的名称),所设置的工具链一定要在环境变量中,不然找不到工具链的运行路径。我是直接用sudo apt-get install
安装的工具链。
–host=arm-linux,编译好的程序是放在arm上面跑。
–enable-shared,生成动态链接库。
–enable-static,生成静态链接库,
直接在控制台运行上述命令,当然要在libjpeg的目录下打开控制台。
运行完毕后可以查看生成的Makefile文件,显然已经配置好。
2、下来是输入make命令。
3、最后make install即可,可在 --prefix= 目录找到所生成的库文件。
这里我个人还遇到了一个问题,就是把libjpeg.a放到自己的工程目录下去编译时,报了一个错误。
./libjpeg/libjpeg.a(jcapimin.o): relocation R_ARM_THM_MOVW_ABS_NC against `jpeg_natural_order’ can not be used when making a shared object; recompile with -fPIC
看错误提示可以看出来需要重新编译recompile with -fPIC
,去修改Makefile里面的CFLAGS
,在后面加-fPIC
。
再重新make,make install一次,把生成的libjpeg.a拷贝到工程下重新链接编译就没报错了。