I.MX8 调用arm compute library 程序在LINUX下的交叉编译问题-arm_neon.h头文件问题

原创,转载请附本文链接:
https://blog.csdn.net/qq_35383648/article/details/105285319

目录

1 问题描述
2 问题探索及解决办法

1、问题描述

在linux下交叉编译调用acl(arm compute library)的I.MX8运行程序时,添加完相应的头文件路径及库文件路径后,出现以下错误信息:
error: attribute(target("+nothing+simd")) is uknown;
以及一系列类似的错误信息:
error:’__Int8x8_t’ does not name a type
typedef __Int8x8_t int 8x8_t;

在这里插入图片描述

2、问题探索及解决办法

一开始感觉问题出在arm_neon.h头文件上,因为我们的代码是windows下编写的,所以考虑代码中包含的arm_neon.h头文件可能是windows下的arm_neon.h头文件,于是去windows下搜了以下,结果出现好多个。。。
在这里插入图片描述
没办法,只能挨个试。先从最可能的与对应版本相关的arm_neon.h头文件开始。。然后就开始了几乎一天的无用功操作~~~~~(因为问题根本不出在这儿,所以无论用以上哪个头文件,编译时都会报不同的错误)

—————————我是分割线———————————

于是乎,我就放弃了尝试其他arm_neon.h头文件,转而进一步百度/必应出现这个问题的原因,经过将近半天的检索。。。终于迎来了一线希望!!直接上链接:
https://www.cnblogs.com/liuwanpeng/p/7833000.html
链接中主要提到以下几个关键信息:
1)、包含的arm_neon.h头文件在gcc目录里。
这坚定了我觉得问题不出在arm_neon.h头文件上的信念。
2)、cmake时添加编译选项 -mfpu=neon -mfloat-abi=softfp -march=armv8-a(跟I.MX8芯片架构型号一致就行)-ffreestanding。如下,一定不要忘了加-ffreestanding!!!
cmake -mfpu=neon -mfloat-abi=softfp -march=armv8-a -ffreestanding …
然后再make,就能编译成功啦!
在这里插入图片描述
目前只是编译成功,代码运行是否正确还需要进一步将程序移植到I.MX8上运行才知道,希望一切顺利吧!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值