Android NDK C++ 类未定义引用

标签 android c++ android-ndk

第一.h

#ifndef FIRST_H
#define FIRST_H

class Test
{
public:
void create();
void test();

private:


};



#endif /* FIRST_H */

第二个.cpp

#include "first.h"


#ifdef __cplusplus
extern "C" {
#endif

jint

Java_com_example_ndkcpp2_MainActivity_stringFromJNI( JNIEnv* env,
                                                  jobject thiz )
{
    Test t;
    t.test();

}

#ifdef __cplusplus
}
#endif

当我在 second.cpp 上进行 NDK 构建时,我得到了

pp2/jni/second.cpp:44: 错误:未定义对“Test::test()”的引用 collect2: ld 返回 1 个退出状态

最佳答案

使用 C++,您在 .h 文件中声明类并在 .cpp 文件中编写实现。例如,您创建了 First.h,那么您应该创建 First.cpp,在其中编写您的方法实现,如 void Test::test(){}。请记住将 First.cpp 添加到您的 makefile(Android.mk) 中进行编译。

关于Android NDK C++ 类未定义引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18832788/

相关文章:

android - 没有找到 native/UnsatisfiedLinkError 的实现让我抓狂

安卓NDK : override dynamic linking for native libraries?

android - 在 (Sherlock)DialogFragment 中调用 startActivity(intentServiceIntent) 会导致 ActivityNotFoundException

android - 我在构建 Android AOSP 时不小心卸载了 jack 服务器

c++ - #define macro() <...> 做什么?

c++ - 优化编译器消除错误

android - 使用 Android 将示例项目导入 Eclipse Helios 失败

Android:购买应用的订单ID

android - 在 Android 中更快地对文档文件数组进行排序

c++ - "make"使用模式匹配时失败