日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 编译 libc log,在Android的源码中添加LOG

發布時間:2023/12/10 linux 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。