热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

错误:使用未声明的标识符“vmaxq_f16”

每当我尝试使用NEON16位浮点内在函数时都会收到此错误。我没有遇到其他数据类型内在函数的任何问题。是否可以在Android上使用NEON16位浮点内在函数?

每当我尝试使用 NEON 16 位浮点内在函数时都会收到此错误。我没有遇到其他数据类型内在函数的任何问题。

是否可以在 Android 上使用 NEON 16 位浮点内在函数?

我的代码:

#include
#include
#include
void useSIMD_f16() {
float16_t zero = 0;
float16x8_t zero_f16x8 = vld1q_dup_f16(&zero);
float16_t One= 1;
float16x8_t one_f16x8 = vld1q_dup_f16(&one);
float16x8_t max = vmaxq_f16(zero_f16x8, one_f16x8);
}

错误:

任务“:app:externalNativeBuildDebug”的执行失败。构建命令失败。使用参数 {-C /home/raed/AndroidStudioProjects/SIMD/app/.cxx/cmake/debug/armeabi-v7a native- 执行进程 /home/raed/Android/Sdk/cmake/3.10.2.4988404/bin/ninja 时出错lib} ninja:进入目录`/home/raed/AndroidStudioProjects/SIMD/app/.cxx/cmake/debug/armeabi-v7a' [1/2] 构建CXX对象CMakeFiles/native-lib.dir/native-lib.cpp .o 失败:CMakeFiles/native-lib.dir/native-lib.cpp.o /home/raed/Android/Sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target =armv7-none-linux-androideabi23 --gcc-toolchain=/home/raed/Android/Sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/raed/Android/Sdk /ndk/22.1。7171670/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dnative_lib_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 armv7-a -mthumb -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/native-lib.dir/native-lib.cpp.o -MF CMakeFiles/native- lib.dir/native-lib.cpp.od -o CMakeFiles/native-lib.dir/native-lib.cpp.o -c /home/raed/AndroidStudioProjects/SIMD/app/src/main/cpp/native-lib .cpp /home/raed/AndroidStudioProjects/SIMD/app/src/main/cpp/native-lib.cpp:7:30: 错误:使用未声明的标识符 'vld1q_dup_f16' float16x8_t zero_f16x8 = vld1q_dup_f16(&zero); ^ /home/raed/AndroidStudioProjects/SIMD/app/src/main/cpp/native-lib.cpp:9:29: 错误:使用未声明的标识符“vld1q_dup_f16” float16x8_t one_f16x8 = vld1q_dup_f16(&one); ^ /home/raed/AndroidStudioProjects/SIMD/app/src/main/cpp/native-lib.cpp:10:23: 错误:使用未声明的标识符 'vmaxq_f16' float16x8_t max = vmaxq_f16(zero_f16x8, one_f16x8); ^ 3 个错误生成。忍者:构建停止:子命令失败。


回答

并非所有 Arm 目标都提供半精度浮点。检查__ARM_FEATURE_FP16_VECTOR_ARITHMETIC宏是否定义,判断功能是否可用。

是否可以在 Android 上使用 NEON 16 位浮点内在函数?

这不是真正的 Android 产品。有些 Android 设备会支持它,有些则不会。这取决于CPU。






推荐阅读
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 本文详细介绍了如何通过修改Lua源码或使用动态链接库(DLL)的方式实现Lua与C++之间的高级交互,包括如何编译Lua源码、添加自定义API以及在C++中加载和调用Lua脚本。 ... [详细]
  • 本文介绍了在Makefile及Android.mk文件中添加打印输出信息的方法,并详细解析了Android编译过程中的关键步骤,包括环境变量的设置与编译脚本的执行。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文将探讨如何在一个目录下针对多个源文件编写高效的Makefile,通过实例介绍从基础到高级的Makefile编写技巧。 ... [详细]
  • Splay Tree 区间操作优化
    本文详细介绍了使用Splay Tree进行区间操作的实现方法,包括插入、删除、修改、翻转和求和等操作。通过这些操作,可以高效地处理动态序列问题,并且代码实现具有一定的挑战性,有助于编程能力的提升。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 本文详细探讨了VxWorks操作系统中双向链表和环形缓冲区的实现原理及使用方法,通过具体示例代码加深理解。 ... [详细]
  • 本教程涵盖OpenGL基础操作及直线光栅化技术,包括点的绘制、简单图形绘制、直线绘制以及DDA和中点画线算法。通过逐步实践,帮助读者掌握OpenGL的基本使用方法。 ... [详细]
  • 选择适合生产环境的Docker存储驱动
    本文旨在探讨如何在生产环境中选择合适的Docker存储驱动,并详细介绍不同Linux发行版下的配置方法。通过参考官方文档和兼容性矩阵,提供实用的操作指南。 ... [详细]
  • 在创建新的Android项目时,您可能会遇到aapt错误,提示无法打开libstdc++.so.6共享对象文件。本文将探讨该问题的原因及解决方案。 ... [详细]
  • 本文介绍如何在Ubuntu环境下为OpenWrt系统构建并安装首个'Hello World'应用程序的IPK包。文章不仅涵盖了基本的环境搭建,还详细说明了代码编写、Makefile配置及最终的IPK包生成与安装过程。 ... [详细]
author-avatar
mjh3804260
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有