gpt4 book ai didi

android - NDK 如何在发布时删除 Log Debug 语句

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:44:02 28 4
gpt4 key购买 nike

我知道使用混淆器可以从发布版本中删除 java Log.d 调试语句 https://stackoverflow.com/a/13327603/1527440

但是有没有办法从 NDK C/C++ 代码中删除日志调试语句。

我正在使用定义语句在 NDK 中调用它们

#define  LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__) 

最佳答案

使用 NDEBUG 宏。或者你真的可以在任何事情上#ifdef

#ifdef NDEBUG

#define LOGD(...)

#else

#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)

#endif

然后是代码:

void f()
{
LOGD("About to do some stuff");
doSomeStuff();
}

编译器将看到(大致 - ANDROID_LOG_DEBUGLOG_TAG 如果它们是宏,也将被替换为它们的值):

void f()
{
__android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,"About to do some stuff");
doSomeStuff();
}

NDEBUG 未定义时,将会看到:

void f()
{
;
doSomeStuff();
}

NDEBUG 被定义时。

关于android - NDK 如何在发布时删除 Log Debug 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17935474/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com