目录
undefined reference to `__android_log_print'
undefined reference to `__android_log_print'
参考:http://blog.csdn.net/u010331406/article/details/50907714
这个问题就是导入 android studio 后遇到的,错误如下:
undefined reference to __android_log_print
该函数在 ndk 目录中文件 **\ndk-bundle\platforms\android-24\arch-arm\usr\include\android\log.h
里,我的代码里包含了该头文件。
Android.mk
文件内容是这样的:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := serial_port
LOCAL_SRC_FILES := SerialPort.c
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
google 了下,有如下解决方法:
1 修改 Android.mk 文件相关:
LOCAL_LDLIBS := -llog
而我的本来就是这个样子啊,失败
2 修改 Android.mk 文件:
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
问题依旧~~~
3 如果使用 android studio,需要修改 gradle 脚本:
android {
defaultConfig {
ndk {
moduleName "serial_port"
ldLibs "log"
}
}
}
也就是添加了一句:ldLibs "log"
这个解决了我的问题。
打印日志示例:
__android_log_print(ANDROID_LOG_DEBUG, "h_w"," h:%d w:%d",h,w);