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相关推荐
- android系统源码中添加app源码(源码部署移植)
涉及到系统定制,需要在系统中加入自己的apk工程,但是上网找了很多资料都是不够全面的,或者看了还是没搞懂,我自己也是一点点摸索过来的,花了不少的时间,也是踩了不少的坑,因此特开一文,帮助大家渡河. 申 ...
- 在 Android 系统源码中自定义系统服务(Custom System Service in AOSP)
该原创文章首发于微信公众号:字节流动 在 Android 系统源码中自定义系统服务(Custom System Service in AOSP) 配置编译环境(Initial AOSP build e ...
- 【内核驱动】 在内核源码中添加第一个驱动程序
开发环境: Redhat6.5 开发板: Tiny4412 (ARM Cortex A9) 1. 在内核源码中创建自己的目录 2. 在对应的目录中创建源文件和Makefile文件 3. 对应文件 ...
- 【驱动】在内核源码中添加驱动程序
以wifi驱动(RTL8188EUS驱动)为例 添加源码 将源码rtl8188EUS添加到drivers/net/wireless/rtl818x/目录下 添加Kconfig 在drivers/net ...
- vlc-qt编译 linux,记录一次搞vlc官方源码中Qt示例工程的过程,文件路径对话框
代码目录:E:\vlc-3.0.12\doc\libvlc\QtPlayer 编译成立,但是 libvlc_new返回NULL 老子就是要搞他,在网上的其他人成功的代码帮助下要把他搞成 (背景是:老板 ...
- Android源码中添加 修改应用
第一部分:添加一个新的应用 1. 在和系统相同版本的SDK目录下开发自己的android应用 2. 把开发的android工程放到源码的packages/apps/目录下 3. 在工程目录下添加And ...
- 在vue2使用百度脑图的kityminder-core进行二次开发思维导图,在源码中添加新的命令
需求说明:最近在搞kityminder-core的思维导图,需要增加一个给节点添加文件的功能,一直在研究源码,发现都是通过执行命令的方式实现的.一直卡在新增命令的步骤,搞了好多天了今天找到了如何在源码 ...
- Android源码中添加一个PTT的按键
一.前提(驱动工程师添加) 我这里主要介绍的是在Android上层去做键值按键的添加,所以我们首先就得需要驱动在底层配置好PTT按键的键值.提供到上层接口,供我们上层开发调用! 1.device/me ...
- oschina android版源码中的颜色值
<?xml version="1.0" encoding="utf-8"?> <resources><color name=&qu ...
最新文章
- Win2000域控制器+Exchange2000迁移至Win2003域控制器+Exchange2003
- 中国发电机行业应用前景与投资策略分析报告2022版
- kafka 名词解释及原理解析过程(三)
- linux指令快速复制粘贴[龟速更新中]
- C# Thread开启线程几种方式
- 牛客练习赛50 F tokitsukaze and Another Protoss and Zerg
- rest端点_REST:使用Controller端点?
- poj 题目分类(3)
- php声波模拟开门,关于 php使用扩展控制树莓派io 驱动超声波测距
- Java基础——虚拟机结构
- 计算机网络与综合布线系统设计,计算机网络与通信技术10-综合布线系统.ppt
- 作者:​冯景华(1984-),男,国家超级计算天津中心主任助理、系统管理部部长。...
- 插入排序:直接插入排序希尔排序
- 信道模型多径传播阴影衰落——无线接入与定位(2)
- iOS常用手势识别器
- Python入门-散点图绘制
- 如何处理好与孩子沟通的关系?
- mupdf嵌入 html页面,MuPDF Command Line Tools
- Javascript 权威指南第五版 手记(2) 变量的作用域
- while循环python次数定义_Python学习笔记之While循环用法分析
热门文章
- 【C++深度剖析教程11】C++学习之编写代码实现复数类
- Vue 之 slot(插槽)
- Leetcode143. Reorder List重排链表
- MySQL数据导入导出(一)
- Cocos2dx 3.11版本 视频添加跳过按钮
- 泛型实现List(ListT)排序
- 引用到网站绝对路径Server.MapPath(~/myfile.mdb)
- 376 Wiggle Subsequence 贪心解法以及证明
- 深度学习第三次课-梯度下降与反向传播
- 计算机论文搜索技巧【一】