JNI编程-- undefined reference to `__android_log_print' 的解决办法

按如下步骤操作:

1、在android.mk 文件中找到

include $(CLEAR_VARS)  这一行,

在下面增加一行:

LOCAL_LDLIBS    := -lm -llog 


2、文件头部引入:

#include <android/log.h>

3、宏定义

#define LOG_TAG "Native"

#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)


@forandever
发布了111 篇原创文章 · 获赞 20 · 访问量 83万+
展开阅读全文

NDK开发的时候遇到error: undefined reference to 错误

04-25

大家好,我在正在将C++的一些代码通过ndk调用到android项目里面去,但是在出现了一个很奇怪的错误; /bin/ld: ./obj/local/armeabi/objs/TestNDK2/TestNDK2.o: in function Java_com_example_testndk2_MainActivity_stringTestNdk(_JNIEnv*, _jobject*):jni/TestNDK2.cpp:15: error: undefined reference to 'CFeatureExtract::CFeatureExtract()' collect2: ld returned 1 exit status make: *** [obj/local/armeabi/libTestNDK2.so] Error 1 我调用jni的文件代码为: #include <string.h> #include "FeatureExtract.h" #include "Output.h" #include <jni.h> jstring Java_com_example_testndk2_MainActivity_stringTestNdk( JNIEnv* env, jobject thiz ) { COutput * pout; pout = new COutput(); CFeatureExtract *pFtr; pFtr=new CFeatureExtract(); return (env)->NewStringUTF("Hello from JNI and anbo !"); } mk文件也编写好了,应该没什么问题,之所以说没问题是因为,我在上面调用了其他cpp文件的 output.cpp和FeatureExtract.cpp等好几个cpp文件,当我把 pFtr=new CFeatureExtract(); 这行去掉的时候,会发现不再报错。下面是我的mk的代码: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := libFeatureExtract LOCAL_SRC_FILES := OnlineFtr.cpp OnlineNorm.cpp FeatureExtract.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH)/include include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libOutput LOCAL_SRC_FILES := LQDFR.cpp Classifier.cpp Output.cpp include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := TestNDK2 LOCAL_SRC_FILES := TestNDK2.cpp LOCAL_STATIC_LIBRARIES := libFeatureExtract LOCAL_STATIC_LIBRARIES := libOutput include $(BUILD_SHARED_LIBRARY) 最后是我CFeatureExtract构造函数的代码: CFeatureExtract::CFeatureExtract() { nmdir = 0; nwid = zone*zstep; pNorm = new COnlineNorm; pFeatr = new COnlineFtr( nwid ); //edit by anbo trajnorm = NULL; new_ptnum =0; new_ptnum_total=0; strokeEnd=0; strokeBegin=0; countStroke=0; GaussModel_probability =0; } 下面是.h头文件的部分声明 class CFeatureExtract{ public: CFeatureExtract(); ~CFeatureExtract(); 非常想知道到底哪里错了啊!感谢! 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览