C 代码调用 C++ 变量、函数提示未定义
2015-03-28 21:13
591 查看
在把Ogre3d 编译到 Android 平台时,使用 NDK 编译,但是一直有一处错误提示:
![](https://img-blog.csdn.net/20150328210238296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHV1dHU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
文章来自博客 http://blog.csdn.net/huutu QQ:790621656
原因是从 Jni 文件夹中的 C 函数 调用 C++ 类成员变量或者成员函数。需要在C代码中再次声明才可以。
文章来自博客 http://blog.csdn.net/huutu QQ:790621656
测试代码如下:
文章来自博客 http://blog.csdn.net/huutu QQ:790621656
编译出错
![](https://img-blog.csdn.net/20150328210659094?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHV1dHU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
文章来自博客 http://blog.csdn.net/huutu QQ:790621656
在使用类成员变量之前做前置声明,就可以编译通过。文章来自博客 http://blog.csdn.net/huutu QQ:790621656
文章来自博客 http://blog.csdn.net/huutu QQ:790621656
文章来自博客 http://blog.csdn.net/huutu QQ:790621656
原因是从 Jni 文件夹中的 C 函数 调用 C++ 类成员变量或者成员函数。需要在C代码中再次声明才可以。
文章来自博客 http://blog.csdn.net/huutu QQ:790621656
测试代码如下:
extern "C" { class OgreAndroidBridge { public: static bool mInitFinish; static bool mTest; public: static void init() { mTest=false; mInitFinish=false; } }; } int main() { OgreAndroidBridge::mTest=true; return 0; }
文章来自博客 http://blog.csdn.net/huutu QQ:790621656
编译出错
文章来自博客 http://blog.csdn.net/huutu QQ:790621656
在使用类成员变量之前做前置声明,就可以编译通过。文章来自博客 http://blog.csdn.net/huutu QQ:790621656
extern "C" { class OgreAndroidBridge { public: static bool mInitFinish; static bool mTest; public: static void init() { mTest=false; mInitFinish=false; } }; } bool OgreAndroidBridge::mTest=false; int main() { OgreAndroidBridge::mTest=true; return 0; }
文章来自博客 http://blog.csdn.net/huutu QQ:790621656
相关文章推荐
- C/C++与汇编语言的交互之-(2)从C/C++代码调用汇编代码中的函数与变量
- C++继承时子类定义同名成员变量时的调用继承函数的问题
- C++继承时子类定义同名成员变量时的调用继承函数的问题
- C++继承时子类定义同名成员变量时的调用继承函数的问题
- 初学AJAX遇到的的问题:使用javascript代码调用服务端代码时提示'WebForm1'未定义
- Eclipse关联源码,Dreamweaver代码提示失效,js调用jsp中的变量
- c/c++/MFC 调用 js 函数代码
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
- C++是定义全局变量和函数常用方法.
- C# 调用Dll中非托管C++代码,函数参数的类型对照
- c/c++/MFC 调用 js 函数代码
- c++声明/定义,静态/非静态,变量/函数
- python嵌入C++------ boost.python如何在C++中调用含有不定长参数tuple变量和关键字参数dict变量的函数
- 在javascript中利用window.external调用C++代码,调用VC函数
- javascript与cs代码互相调用 asp.net中前台javascript与后台C#交互 这里主要包括了javascipt与后台CS代码四种方法互调(其中包括函数与变量的访问)
- C++关于函数声明和定义中参数赋值为0调用问题演示
- 在vim中使用cscope查找调用、定义函数和变量的地方
- 函数定义和调用的代码实例
- C++中重构函数声明定义与static变量使用方法
- C++反汇编代码分析--函数调用