记一次JNI log导入失败问题

在作本身项目的时候,因为须要在JNI使用log的功能,定义代码以下:android

#ifndef ALOHA_JNI_LOG_H

#define ALOHA_JNI_LOG_H
#include "jni.h"
#include "android/log.h"
#include <cstdlib>


#ifndef JNI_LOG
#define JNI_LOG "jni_log"
#endif
//build log
#define ALOGE(...) __android_log_print(ANDROID_LOG_ERROR, JNI_LOG, __VA_ARGS__)
#define ALOGD(...) __android_log_print(ANDROID_LOG_DEBUG, JNI_LOG, __VA_ARGS__)
#define ALOGI(...) __android_log_print(ANDROID_LOG_INFO, JNI_LOG, __VA_ARGS__)
#define ALOGW(...) __android_log_print(ANDROID_LOG_WARN, JNI_LOG, __VA_ARGS__)
#endif //ALOHA_JNI_LOG_H

而后在一个c++文件中导入头文件:c++

#include "../jni_log.h"

结果报错了,错误信息以下:网站

"undefined reference to `__android_log_write".

一看是说log文件没有导入成功,在网站上查了挺久都是那么两种方法,后来在overflow里面查到了解决办法,须要单独连接对应的库:ui

target_link_libraries(hello-jni
                        android
                      speech_vad
                       ${log-lib} )
#这里要单独连接一下,我也不知道为啥,若是有大神知道,麻烦指点一下
target_link_libraries( speech_vad
                       ${log-lib} )

对应解决方案地址:google

https://stackoverflow.com/questions/40844163/android-ndkcmake-undefined-reference-to-android-log-write-when-using-log?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qacode

相关文章
相关标签/搜索