参考相关代码: android_log.h
#if defined(ANDROID) || defined(__ANDROID__)
#include
#define TAG "test_log"
#define LOGD(...) { \
__android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__); \
}
#define LOGE(...) { \
__android_log_print(ANDROID_LOG_ERROR, TAG,"LOGE (%s:%i) ",__func__,__LINE__); \
__android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__); \
/*exit(1);*/ \
}
#endif
需要注意的:
android ndk 中关于logcat的相关函数是封装在
android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/26/liblog.so"
由于是个动态库,所以无法封装到android_log.h相关的静态库中,所以每次编译可执行程序时,是需要在程序的cmake中加一下liblog.so
相关cmake实例:
cmake_minimum_required(VERSION 3.15)
project(test)
add_executable(test test.c)
target_include_directories(test PRIVATE ${PROJECT_SOURCE_DIR}/../include)
target_link_libraries(test
PRIVATE log)