Linux 编译 libc log,在Android的源码中添加LOG
想在Opencore代碼中添加打印信息,但是使用OpenCore自帶的PVLOGGER,有一定的局限,因為只能在創建對象調用相應的ThreadLogon()后才能使用。所以不能實現在任何函數中添加。于是通過添加Log.h的方法來添加。
首先轉下別人的經驗
我試了下還是出先undefined reference to `__Android_log_write'錯誤
1:在編譯so文件的c或cpp文件之前中加入以下代碼,就可以在android中的log顯示日志內容
#include
#define LOG_TAG "show infomation"
#define LOGW(a )? __android_log_write(ANDROID_LOG_WARN,LOG_TAG,a)
2:就可以在c或cpp中加入LOWG(str) 就可以在android中的log中顯示打印的內容
3.這樣寫完以后,如果直接編譯,就會報 __android_log_write 方法undefined.
怎么回事呢?關鍵是在設置編譯選項上面。
在Android.mk文件里,可以指定一個LOCAL_LDLIBS的參數。如果不指定,那么編譯的時候,只會引入默認的幾個重要的lib,比如libc之類的。
如果要用log,那就要把 liblog給引進來。
網上很多的寫法是 LOCAL_LDLIBS := -llog ,這在build static lib的時候沒什么問題。如果是build shared lib,就會報個 cannot find -llog的錯誤。意思是找不到liblog.so這個庫文件。
因此需要改成 LOCAL_LDLIBS :=? -L$(SYSROOT)/usr/lib -llog 才可以正常編譯。
其中-L參數是指定了搜索lib的路徑。
下面是一個android.mk的內容的例子:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE??? := TestNdkNetwork
LOCAL_SRC_FILES := HttpConnection.cpp
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog(llog 是哪個庫?是不是打錯了?是liblog)
include $(BUILD_SHARED_LIBRARY)
總結
以上是生活随笔為你收集整理的Linux 编译 libc log,在Android的源码中添加LOG的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Intel Arc A730M高端显卡实
- 下一篇: 河南学霸考生凡尔赛估数学分:有点难 只能