基于cmake编译添加log打印

准备好android toolchain

配置linux环境变量

export TOP=/home/user/android_toolchain/toolchain
SYSROOT=$TOP/sysroot
export PATH=$TOP/bin:$PATH
target_host=aarch64-linux-android
export AR=$target_host-ar
export AS=$target_host-as
export CC=$target_host-clang
export CXX=$target_host-clang++
export LDFLAGS="-pie"
export PKG_CONFIG_SYSROOT_DIR=${TOP}/prebuild/target
export PKG_CONFIG_PATH=${PKG_CONFIG_SYSROOT_DIR}/lib/pkgconfig
export LDFLAGS="${LDFLAGS} -Wl,-rpath-link=${TOP}/prebuild/target/lib"

工程项目中链接log库

aux_source_directory(. all_source_files)
set(CMAKE_CXX_FLAGS_1 "-std=c++11 -pedantic")
set(CMAKE_CXX_FLAGS_2 "-Wno-variadic-macros -Wall -Wunused -Wunreachable-code")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_1} ${CMAKE_CXX_FLAGS_2}")
include_directories(
    ../include/
)
add_library(my_function ${all_source_files})
target_link_libraries(my_function log)

在项目中自定义trace.h头文件供使用,如下所示

#ifndef _TRACE_H
#define _TRACE_H

#include <iostream>
#include <sstream>
#include <android/log.h>

const std::string LOG_TAG = "PersonalLog";
namespace MyProject {

#define _LOGGER_INFO(LOG_TAG, printContent, ...) \
__android_log_print(ANDROID_LOG_INFO, LOG_TAG.c_str(), "[%s:%d]" printContent, __FUNCTION__, __LINE__, ##__VA_ARGS__) 
#define LOGI(...) _LOGGER_INFO(LOG_TAG, __VA_ARGS__)

#define _LOGGER_DEBUG(LOG_TAG, printContent, ...) \
__android_log_print(ANDROID_LOG_DEBUG, LOG_TAG.c_str(), "[%s:%d]" printContent, __FUNCTION__, __LINE__, ##__VA_ARGS__) 
#define LOGD(...) _LOGGER_DEBUG(LOG_TAG, __VA_ARGS__)

#define _LOGGER_WARN(LOG_TAG, printContent, ...) \
__android_log_print(ANDROID_LOG_WARN, LOG_TAG.c_str(), "[%s:%d]" printContent, __FUNCTION__, __LINE__, ##__VA_ARGS__) 
#define LOGW(...) _LOGGER_WARN(LOG_TAG, __VA_ARGS__)

#define _LOGGER_ERROR(LOG_TAG, printContent, ...) \
__android_log_print(ANDROID_LOG_ERROR, LOG_TAG.c_str(), "[%s:%d]" printContent, __FUNCTION__, __LINE__, ##__VA_ARGS__) 
#define LOGE(...) _LOGGER_ERROR(LOG_TAG, __VA_ARGS__)
}

#endif

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值