阿里云设备端C-SDK交叉编译

前段时间帮助组内其他人解决了C-SDK交叉编译的问题,今天突然登录CSDN看到博客竟然一年没有更新了,今天就记录一下吧。

编译出来的执行文件在arm-linux下不能执行,最有可能的点就是交叉编译链没有找对,在Ubuntu的终端编译,用的还是Ubuntu下的gcc,并没有是使用你的交叉编译arm-gcc。

https://help.aliyun.com/document_detail/96623.html?spm=a2c4g.11186623.2.16.57b52cf0oIzUyY

这个是设备端C-SDK下载的路径,此次使用的是3.0.1

官方也有详细的Make编译说明

https://help.aliyun.com/document_detail/97558.html?spm=a2c4g.11186623.2.25.1d1b492bUgBvwT

正常情况下依照上面的教程应该是没有问题的,但是我们的项目比较特殊,之前的手顺也是从日本过来的,交叉编译链也是国外的厂商提供的,所以一些交叉编译的环境变量很重要。手顺里修改了tools/board/config.xxx.yyy文件,追加了一些交叉编译用的变量,所遇到的第一个坑就是没有正确的在终端给新追加的变量赋值,赋正确的值,只有这样才能找到正确的gcc和一些头文件和lib库。所以在做交叉编译时,一定要先知道想用的gcc在哪里,它的库和头文件在哪里,然后正确的环境变量。

第二个坑就是在修改后config.xxx.yyy就应该再次make reconfig一下,重新选择一下config.xxx.yyy 这样在make时才会使用到新加的那些变量,然后使用正确的GCC.

反正记住一句话,编译出来的可执行文件不能在arm环境下执行,那一定是没有正确的使用交叉编译链,那么一定是你的哪一步没有配对。(涉及到公司的东西,很细节的就不详细的说了,实际上在编译时卡住,我觉得最大的原因就是太坚信日本的手顺,SDK是阿里提供的,它也提供了完整的说明,详细的研究研究,应该不难编译出来.a文件)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值