文章目录

  • 一、报错信息
  • 二、报错信息

一、报错信息


使用 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(); )相关推荐

  1. 【错误记录】Visual Studio 中编译 NDK 报错 ( error : cannot use ‘throw‘ with exceptions disabled )

    文章目录 一.报错信息 二.解决方案 一.报错信息 使用 Visual Studio 2019 编译 Android NDK 项目 , 报错如下 : 已启动生成- 1>------ 已启动生成: ...

  2. 关于Visual Studio 中“scanf”输入报错的解决方法

    有很多初次接触VS的同学会发现,当我们在写完一段代码,代码中用到scanf输入变量时,在调试编译的过程中就会出现错误: warning C4996: 'scanf': "This funct ...

  3. 【错误记录】IntelliJ IDEA 编译 Groovy 报错 ( Could not open/create prefs root node Software\JavaSoft\Prefs )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 IntelliJ IDEA 中编译运行 Groovy 工程时 , 报如下错误 : Could not open/create prefs roo ...

  4. 【错误记录】IntelliJ IDEA 编译 Groovy 报错 ( GroovyRuntimeException: This script or class could not be run. )

    文章目录 一.错误记录 二.问题分析 一.错误记录 运行 class Student1 {} Groovy 代码 , 会报错 ; 报错信息 : groovy.lang.GroovyRuntimeExc ...

  5. YOLO踩坑:编译darknet_ros报错no matching function for call to ‘_IplImage::_IplImage(cv::Mat)’的解决方案

    前几天按照YOLO_v4的教程,想在ROS环境下运行YOLO算法,结果在编译的环节报错了,如下图所示. 百度搜索无果,后来用bing搜索终于找到了可行的参考解决方案,因为opCV版本的问题,我们需要在 ...

  6. 【错误记录】Visual Studio 中配置 NDK 头文件路径 ( NDK 的三个头文件路径 | 与 CPU 架构相关 asm 头文件路径选择 )

    文章目录 一.报错信息 二.解决方案 1.NDK 的三个头文件路径 2.与 CPU 架构相关 asm 头文件路径选择 一.报错信息 参考 [Android 逆向]Android 进程注入工具开发 ( ...

  7. Visual studio中编译和使用libpng和zlib

    Visual studio中编译和使用libpng和zlib https://blog.csdn.net/jinzhuojun/article/details/7972747 转载于:https:// ...

  8. 【错误记录】PyCharm 运行 Python 程序报错 ( UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe5 in positio )

    文章目录 一.报错信息 二.解决方案 一.报错信息 PyCharm 运行 Python 程序报错 : D:\002_Project\011_Python\APK\venv\Scripts\python ...

  9. vue项目在vscode中编译eslint报错没显示红色波浪线提示

    vue项目在vscode中编译eslint报错没显示红色波浪线提示. 如下图所示: 下图是预期效果: 不符合Eslint校验规则的代码位置都能展示出来,这样一目了然.能帮助我们迅速找到报错的位置. 然 ...

最新文章

  1. 函数传参涉及到副本的创建与拷贝问题分析
  2. B站《一天学会 MySQL 数据库》学习笔记
  3. java基础学习(4)-switch支持数据类型
  4. Python与matlab在存储三维数组上的区别
  5. apache的rewrite模块实例操作
  6. python实现杨辉三角形博客园_Python实现杨辉三角
  7. [C# 网络编程系列]专题九:实现类似QQ的即时通信程序
  8. python生成器next_Python生成器生成next,python,yieldnext
  9. wifi 2.4g 5g 区别_关于路由器的2.4G以及5G,你不知道的那些事
  10. android,PHP解析JSON数组,JSONArray,JSONOject,乱码
  11. Tapestry5中的DI
  12. 中国大数据与智能计算产业联盟“开源软件工作委员会”成立会议在京召开
  13. 高仿计算器 双页面浏览器 谷歌内核网页版宝贝类目查询
  14. python爬取大众点评数据_小试Python——爬虫抓取大众点评上的数据
  15. qt设置文本背景透明_QT透明显示文字
  16. 【6035】聊聊各种“上门”能不能做起来
  17. 实战! excel常用函数中lookup的用法
  18. tp5 {if}判断标签 在Html页面中使用
  19. 这十个嵌入式工程师最青睐的树莓派扩展板让你受用半生
  20. linux下修改网卡MAC地址

热门文章

  1. Searchable(搜索功能)(转)
  2. RHEL6基础四十二之RHEL文件共享①NFS
  3. Java代码-CPU占用过高排查思路
  4. 软件工程-东北师大站-第十二次作业(PSP)
  5. 转载CopyOnWriteArrayList
  6. 数据库中间件mycat
  7. Excel的日期格式约定与解析
  8. Storm的StreamID使用样例(版本1.0.2)
  9. 软件开发项目进度控制浅谈
  10. Kattis之旅——Prime Reduction