android ndk添加打印 解决undefined reference to __android_log_print'问题

本文介绍了解决在Android NDK开发中使用printf无法在虚拟机中打印的问题。通过引入android/log.h并定义宏,配合Android.mk文件的修改,成功实现了打印功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在so库中添加打印,android虚拟机不能打印的问题,网上答案太多,一个个试出来的,先记录下来


用的是android-ndk-r8c 

遇到的一个问题 用了stdio.h中的printf()添加打印后,在虚拟机中打印不能输出


需要引用库,添加 几个地方才能打开打印


#include <android/log.h>

定义宏
#define LOG_TAG "communicate"

#define LOGI(args...) \
	__android_log_print(ANDROID_LOG_INFO,LOG_TAG, args)

#define DEBUG(args...) \
	__android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, args)

#define ERROR(args...) \
	__android_log_print(ANDROID_LOG_ERROR, LOG_TAG, args)


#else

#define LOGI(args...)
#define DEBUG(args...)
#define ERROR(args...)




#endif


ndk-build编译

发现这个修改之后会出现undefined reference to __android_log_print'  这个问题

然后继续修改Android.mk文件

需要加上几句话

LOCAL_LDLIBS := -lm -llog


LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog




LOCAL_SHARED_LIBRARIES :=\
liblog.so\
libutils \


搞定 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值