本文主要是介绍折腾交叉编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
源起:
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包,需要手工安装,但是实在解决不了依赖问题,
这篇关于折腾交叉编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!