pt1*_*123 7 c++ debugging android android-ndk
我知道使用proguard你可以从发行版本中删除java Log.d调试语句 /sf/answers/932932241/
但是有没有办法从NDK C/C++代码中删除日志调试语句.
我正在使用define语句在NDK中调用它们
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
Run Code Online (Sandbox Code Playgroud)
Joe*_*oel 10
使用NDEBUG宏.或者你真的可以做#ifdef任何事情.
#ifdef NDEBUG
#define LOGD(...)
#else
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
#endif
Run Code Online (Sandbox Code Playgroud)
然后为代码:
void f()
{
LOGD("About to do some stuff");
doSomeStuff();
}
Run Code Online (Sandbox Code Playgroud)
编译器将看到(粗略 - ANDROID_LOG_DEBUG并且LOG_TAG如果它们是宏,也将替换为它们的值):
void f()
{
__android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,"About to do some stuff");
doSomeStuff();
}
Run Code Online (Sandbox Code Playgroud)
何时NDEBUG未定义并将看到:
void f()
{
;
doSomeStuff();
}
Run Code Online (Sandbox Code Playgroud)
什么时候NDEBUG定义.
| 归档时间: |
|
| 查看次数: |
4555 次 |
| 最近记录: |