记:ubuntu下交叉编译arm的链接库

以第三方库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拷贝到工程下重新链接编译就没报错了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值