NDK编译c包含C++头文件时,出现 error: unknown type name 'class' 的解决方法
在进行native开发的时候,难免会遇到C文件包含C++头文件而调用C++函数,若没做什么处理,直接include进行编译的话,会遇到以下错误:
error: unknown type name ‘class’
error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
那么怎么解决呢?
首先,找下报错的原,从C以及C++特性不难发现:C文件include了带有C++关键字的头文件,如class等,因此,包含C++关键字的头文件被C编译器所编译,而不是用C++编译器编译,而C编译器无法识别C++的关键字,所以报错。那么解决方法很自然有两种方法:
第一种是最简单的就是统一用C++,把c文件改cpp;
第二种方法就是
在所有使用C++方法的地方加上:#ifdef __cplusplus,如:
#ifdef __cplusplus
class A{
};
endif
注:如果使用了extern “C” ,也要加上#ifdef __cplusplus,因为C编译器无法识别extern “C”:
#ifdef __cplusplus
extern “C” {
#endif
……
#ifdef __cplusplus
}
#endif
转载自:https://blog.csdn.net/acm2008/article/details/44747787
</div>
NDK编译c包含C++头文件时,出现 error: unknown type name 'class' 的解决方法相关推荐
- unknown error mysql_mysql执行sql文件报错Error: Unknown storage engine‘InnoDB’的解决方法...
发现问题 最近在工作中遇到一个问题,在运行了一个innoDB类型的sql文件,报了Error: Unknown storage engine 'InnoDB'错误,网上查了很多方法,但是都没办法真正解 ...
- linux编译寻找包含的头文件,Linux编写内核模块编译时找不到头文件
//所有模块都需要的头文件#include // init&exit 相关宏MODULE_LICENSE("GPL");static int __init hello_in ...
- .NET上传大文件时提示Maximum request length exceeded错误的解决方法
使用IIS托管应用程序时,当我们需要上传大文件(4MB以上)时,应用程序会提示Maximum request length exceeded的错误信息.该错误信息的翻译:超过最大请求长度. 解决方法: ...
- Word 在试图打开文件时遇到错误 文档可能已损坏 解决方法
我使用的是 Office 2019 的 Word 打开后缀名为 doc 的文件. 错误信息: 有多种原因可导致显示此错误消息. 文档可能已损坏.请使用"恢复文本"转换器或" ...
- idea设置了默认换行符,ctl + s 保存文件时换行符没有变成默认换行符 解决方法
设置默认换行符 首先我们在idea的设置中,设置默认的换行符. 因为linux 和 windows 以及 macos 各个操作系统的换行符不一致,根据自己的需求进行选择 快捷替换 在idea的右下角可 ...
- 安卓AS时关于ERROR: Connection timed out: connect的解决方法:(自我总结,不足之处请见谅)
ERROR: Connection timed out: connect:错误:连接超时:连接 这个错误 一般来说是因为.gradle引起的 (1).gradle下载的不全 (2)网络原因<10 ...
- C++包含头文件时尖括号和双引号区别
原文链接:http://c.biancheng.net/cpp/biancheng/view/66.html 如果你还看一些别的C++教程,那么你可能很早就发现了,有些书上的#include命令写作# ...
- VSCODE编译头文件时函数没有定义的解决方案(VSCODE手动链接C文件方法)
VSCODE编译头文件时函数没有定义的解决方案(VSCODE手动链接C文件方法) 参考文章: (1)VSCODE编译头文件时函数没有定义的解决方案(VSCODE手动链接C文件方法) (2)https: ...
- glibc的头文件 linux_求助,编译glibc头文件时出错
我用的软件包如下: binutils-2.16.tar.gz gcc-3.4.4.tar.bz2 glibc-2.3.5.tar.gz glibc-linuxthreads-2.3.5.tar.gz ...
最新文章
- 前端入门(加载特效,css)
- css img重复_20 个 CSS 快速提升技巧
- 中午xxx遭受攻击,然后发现C盘空间体积缩小,发现该目录占用1G多,全部是站点
- java 创建者设计模式_Java设计模式之创建者模式分享热爱编程,程序人生
- Linux概述及centos版本介绍和下载地址
- 签名证书无效”-在vCenter Server Appliance 6.5 / 6.7上使用Shell脚本重新生成和替换已过期的STS证书(76719)
- Leetcode每日一题:290.word-pattern(单词规律)
- P1681 最大正方形II (动态规划)
- 简析 __init__、__new__、__call__ 方法
- linux 系统监控、诊断工具之 lsof 用法简介
- 安装布署rsync+Inotify实现数据的实时同步更新
- 【LDO稳压器】SOT23-5封装-RT9193-RT9013-LP2992-LP5907设计
- BlackBerry Internet Service故障:公司内部同事无法互通邮件,对外联络没有问题
- [Python] 央视新闻联播推送
- 全面剖析:“外包”浪潮以及程序员应对攻略
- JavaScript获取法定节假日
- PyQt5中为窗口添加菜单工具栏状态栏
- TikTok干货分享:月入20000美金的操作手法分享
- 32java访问(http):国家气象局 免费接口
- vulnhub靶机-djinn2