【错误记录】Visual Studio 中编译 NDK 报错 ( no matching function for call to ‘cacheflush‘ cacheflush(); )
文章目录
- 一、报错信息
- 二、报错信息
一、报错信息
使用 Visual Studio 2019 编译 Android 平台的 NDK 项目 ; 编译时报错 ;
报错信息 :
1>./native/native.cpp(428,14): warning G0C39A92D: 'SearchCode' has C-linkage specified, but returns user-defined type 'std::string' (aka 'basic_string<char>') which is incompatible with C [-Wreturn-type-c-linkage]
1> std::string SearchCode(unsigned char* data,unsigned size){1> ^
1>./native/native.cpp(658,5): error GEF7559A7: no matching function for call to 'cacheflush'
1> cacheflush();
1> ^~~~~~~~~~
1>D:/001_Develop/001_SDK/Sdk/ndk/android-ndk-r14b/build//../platforms/android-19/arch-arm/usr/include\unistd.h:183:12: note: candidate function not viable: requires 3 arguments, but 0 were provided
1>extern int cacheflush(long start, long end, long flags);
1> ^
1>1 warning and 1 error generated.
1>make: *** [obj/local/armeabi-v7a/objs/native/native/native.o] Error 1
1>D:\001_Develop\017_Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(46,5): error MSB3073: 命令“"D:\001_Develop\001_SDK\Sdk\ndk\android-ndk-r14b\build\ndk-build.cmd" NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk NDK_APPLICATION_MK=Application.mk ”已退出,代码为 2。
1>已完成生成项目“magic.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
二、报错信息
仔细研究报错信息 , 发现 D:/001_Develop/001_SDK/Sdk/ndk/android-ndk-r14b/build//../platforms/android-19/arch-arm/usr/include\unistd.h:183:12: note: candidate function not viable: requires 3 arguments, but 0 were provided
, 调用的函数头文件是 android-19/arch-arm/usr/include\unistd.h
, 这是 ARM 平台的头文件 , 其中的函数定义的都是 ARM 架构的函数 ;
在 ARM 架构的 android-19/arch-arm/usr/include/unistd.h
头文件中 , cacheflush
函数为 :
extern int cacheflush(long start, long end, long flags);
在 x86 架构中该系统调用无效 ;
如果编译的目标 函数库 或 可执行文件 架构有 x86 架构 , 就会报错 , 因为该函数只支持 ARM 架构 ;
#ifndef __i386__cacheflush();
在 Application.mk 中 , 要声明只为 x86 编译函数库 , 注释掉 armeabi-v7a
armeabi
这两个目标架构 ;
APP_ABI := x86
#armeabi-v7a armeabi
APP_STL := gnustl_static
APP_PLATFORM := android-19
涉及 CPU 操作时 , 注意编译的架构 , 以及引用的依赖库 ;
cacheflush
函数是系统调用中刷新 CPU 高速缓存的函数 , 不同的 CPU 架构 , 对应的实现也不同 ;
【错误记录】Visual Studio 中编译 NDK 报错 ( no matching function for call to ‘cacheflush‘ cacheflush(); )相关推荐
- 【错误记录】Visual Studio 中编译 NDK 报错 ( error : cannot use ‘throw‘ with exceptions disabled )
文章目录 一.报错信息 二.解决方案 一.报错信息 使用 Visual Studio 2019 编译 Android NDK 项目 , 报错如下 : 已启动生成- 1>------ 已启动生成: ...
- 关于Visual Studio 中“scanf”输入报错的解决方法
有很多初次接触VS的同学会发现,当我们在写完一段代码,代码中用到scanf输入变量时,在调试编译的过程中就会出现错误: warning C4996: 'scanf': "This funct ...
- 【错误记录】IntelliJ IDEA 编译 Groovy 报错 ( Could not open/create prefs root node Software\JavaSoft\Prefs )
文章目录 一.报错信息 二.解决方案 一.报错信息 在 IntelliJ IDEA 中编译运行 Groovy 工程时 , 报如下错误 : Could not open/create prefs roo ...
- 【错误记录】IntelliJ IDEA 编译 Groovy 报错 ( GroovyRuntimeException: This script or class could not be run. )
文章目录 一.错误记录 二.问题分析 一.错误记录 运行 class Student1 {} Groovy 代码 , 会报错 ; 报错信息 : groovy.lang.GroovyRuntimeExc ...
- YOLO踩坑:编译darknet_ros报错no matching function for call to ‘_IplImage::_IplImage(cv::Mat)’的解决方案
前几天按照YOLO_v4的教程,想在ROS环境下运行YOLO算法,结果在编译的环节报错了,如下图所示. 百度搜索无果,后来用bing搜索终于找到了可行的参考解决方案,因为opCV版本的问题,我们需要在 ...
- 【错误记录】Visual Studio 中配置 NDK 头文件路径 ( NDK 的三个头文件路径 | 与 CPU 架构相关 asm 头文件路径选择 )
文章目录 一.报错信息 二.解决方案 1.NDK 的三个头文件路径 2.与 CPU 架构相关 asm 头文件路径选择 一.报错信息 参考 [Android 逆向]Android 进程注入工具开发 ( ...
- Visual studio中编译和使用libpng和zlib
Visual studio中编译和使用libpng和zlib https://blog.csdn.net/jinzhuojun/article/details/7972747 转载于:https:// ...
- 【错误记录】PyCharm 运行 Python 程序报错 ( UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe5 in positio )
文章目录 一.报错信息 二.解决方案 一.报错信息 PyCharm 运行 Python 程序报错 : D:\002_Project\011_Python\APK\venv\Scripts\python ...
- vue项目在vscode中编译eslint报错没显示红色波浪线提示
vue项目在vscode中编译eslint报错没显示红色波浪线提示. 如下图所示: 下图是预期效果: 不符合Eslint校验规则的代码位置都能展示出来,这样一目了然.能帮助我们迅速找到报错的位置. 然 ...
最新文章
- 函数传参涉及到副本的创建与拷贝问题分析
- B站《一天学会 MySQL 数据库》学习笔记
- java基础学习(4)-switch支持数据类型
- Python与matlab在存储三维数组上的区别
- apache的rewrite模块实例操作
- python实现杨辉三角形博客园_Python实现杨辉三角
- [C# 网络编程系列]专题九:实现类似QQ的即时通信程序
- python生成器next_Python生成器生成next,python,yieldnext
- wifi 2.4g 5g 区别_关于路由器的2.4G以及5G,你不知道的那些事
- android,PHP解析JSON数组,JSONArray,JSONOject,乱码
- Tapestry5中的DI
- 中国大数据与智能计算产业联盟“开源软件工作委员会”成立会议在京召开
- 高仿计算器 双页面浏览器 谷歌内核网页版宝贝类目查询
- python爬取大众点评数据_小试Python——爬虫抓取大众点评上的数据
- qt设置文本背景透明_QT透明显示文字
- 【6035】聊聊各种“上门”能不能做起来
- 实战! excel常用函数中lookup的用法
- tp5 {if}判断标签 在Html页面中使用
- 这十个嵌入式工程师最青睐的树莓派扩展板让你受用半生
- linux下修改网卡MAC地址