折腾交叉编译

源起
1 需要把cc中间件移植到国产架构服务器上,即arm64+银河麒麟
2 需要提供tts,使用科大讯飞的离线tts

科大讯飞的离线tts的sdk默认不提供arm上的版本,需要向科大讯飞申请,申请单需要注明编译arm上sdk的交叉编译器具体的版本(其实飞腾+麒麟,鲲鹏+麒麟,都已经有本地arm64的g++编译器了,但是科大讯飞依然要求提供交叉编译器,这个也合理,毕竟科大讯飞可能暂时也不想购买各个型号的国产架构服务器,提供交叉编译器,那么他只需要在x64架构的linux上编译就行了)

先从linaro.org 下载了7.5.0版本的交叉编译器
gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar
解压到百度服务器(centos 7.9-x64)上,然后修改自己写的几个工具库的Makefile(mysocket,tinyxml2,inireader),把编译器指向 gcc-linaro-7.5下的bin/aarch_64-linux-gnu=g++, make成功,把生成的libxxx.so文件取到长城-飞腾-麒麟机器上,make tlcardfs,在链接libmysocket.so的时候报告错误,跟pthread库有关。
长城笔记本上的银河麒麟是基于ubuntu16.04的,其本地编译器gcc 版本号是5.4 根linaro的7.5.0版的交叉编译器生成的库不匹配。
所以需要5.4.0版本的交叉编译器。

搜索,一开始在Ubuntu官网找到了,是一个deb包,需要手工安装,但是实在解决不了依赖问题,一个接一个的依赖仿佛无穷无尽。还是需要一个傻瓜版,解压就能用的。
全网找5.4.0版本的aarch64的交叉编译器。借助bing国际版,终于搜索到,在linaro.org网站

http://releases.linaro.org/components/toolchain/binaries/5.4-2017.05/aarch64-linux-gnu/gcc-linaro-5.4.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz

下载极慢。用迅雷,折腾许久,终于下载成功了。赶紧备份到微云和百度网盘上。

用这个5.4版的交叉编译器编译的so,终于可以跟长城笔记本上的本地编译器匹配了,生成的tlcardfs也运行正常了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值