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)0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《哈佛幸福课》笔记

前言:幸福感是衡量人生的唯一标准,是所有目标的最终目标 积极心理学 第一课 什么是积极心理学 与缺乏实质内容的心理自助行动不同,积极心理学从学术界而来,有着严谨的学术内容,并且兼顾应用到生活的方方面面&#xff…

ubuntu修改用户名、计算机名、主目录名

今天是MPI并行程序设计这门课交作业的截止日期,我们寝室的张佳和刘庆的本科同学来了,所以他们也没有时间搞,我就又做一回好人吧!帮他们搞一下!帮他们写报告的过程中最主要的问题就是跑那个MPI的程序,因为我…

linux redis可视化工具,几款开源的图形化Redis客户端管理软件

Redis是一个超精简的基于内存的键值对数据库(key-value),一般对并发有一定要求的应用都用其储存session,乃至整个数据库。 它自带一个最小化的命令行式的数据库管理工具,有时侯使用起来并不方便。不过Github上面已经有了很多图形化的管理工具…

ubuntu 修改用户名和计算机名称

修改用户名 sudo chfn -f 新名字 原名字 sudo usermod -l 新名字 -d /home/新名字 -m 原名字 sudo groupmod -n 新名字 原名字 修改计算机名 /etc/hosts /etc/hostname

linux c 将虚拟地址转化为物理地址_面试不懂 Linux 内存管理?我用 20 张图给你讲明白...

微信搜索公众号「 后端技术学堂 」回复「1024」获取50本计算机电子书,回复「学习路线」获取超详细后端技术学习路线思维导图,文章每周持续更新,我们下期见!大家好,我是柠檬哥。分享编程学习,助力程序员成长…

nginx源码分析—模块及其初始化

Content 0. 序 1. nginx有哪些模块? 2. nginx如何描述这些模块? 2.1 模块数据结构 2.1.1 ngx_module_t结构 2.1.2 ngx_command_t结构 2.2 模块类图 3. nginx如何组织这些模块? 3.1 全局数组ngx_modules 3.2 模块组织结构图 4. nginx的模块种类…

PostgreSQL的Checkpoint 发生的时机

磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页 官方说明来自: http://www.postgresql.org/docs/9.2/static/runtime-config-wal.html…

linux 网络相关,Linux系统管理员必备的21个网络相关监控

Linux系统管理员必备的21个网络相关监控1. ntopngntopng 是 ntop 的升级版,它提供了一个能通过浏览器进行网络监控的图形用户界面。它还有其他用途,如:地理定位主机,显示网络流量和 ip流量分布并能进行分析。2. iftopiftop 类似于…

sqlite sqlite3_bind_int sqlite3_bind_text

sqlite3_bind_int sqlite3_bind_text 这两个函数给“准备语句”绑定参数。其中函数的第二个参数是绑定参数的编号。 此编号是从1开始,而不是从0开始。 查看sqlite3的源码,可以看到这两个函数都调用了 vdbeUnbind 函数。 查看vdbeUnbind函数&…

web无序列表去掉点_HTML 无序列表项目符号使用图片的CSS写法

创建一个HTML页面, 其内容为一个无序列表, 列表中至少包含了5本畅销书,每本书之前的项目符号必须采用概述封面的缩略图。这些信息可以冲Web上获取。 要求采用CSS方法进行布局。HTML:复制代码代码如下:Linux畅销书鸟哥的Linux私房菜…

WPF 获得文件夹路径 FolderBrowserDialog

WPF 获得文件夹路径可用FolderBrowserDialog类, 添加System.Windows.Forms引用, 并引用命名空间using System.Windows.Forms; privatevoid button1_Click(object sender, RoutedEventArgs e){FolderBrowserDialog fbd new FolderBrowserDialog();fbd.Sho…

Sqlite SQL格式化输入函数splite3_mprintf

sqlite中, 在使用sql语句写入字符串数据时, 由于字符数据中可能隐含转义字符,如果对于他们不作处理,执行时,exec函数将不识别,或者造成注入攻击这个时候sqlite_mprintf(),应该就是必须使用了,配…

固态硬盘 linux 文件系统,SSD是否需要使用特别的文件系统?

用认真的态度与专业的情怀倾注于存储,欢迎关注我,与我交流哦!我们常用的电脑系统主要是Windows和Linux,其中,Windows系统中常用的文件系统主要是FAT和NFTS,FAT是旧Windows和U盘用的较多,最新Win…

java二维数组数字数显次数_【每日一题】118.数组中数字出现的次数

关注我们获取更多计算机考研信息? 今日习题在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums [3,4,3,3]输出:4示例 2:输入:nums [9,1,…

凤凰os linux界面,让deepin linux系统与凤凰os共用个人目录的方法

下面以deepin为例介绍linux系统与凤凰os(phoenix os)共用个人目录的方法,经过实测,按照以下方法可以成功。背景我的电脑安装的原来是deepin单系统,deepin安装在sda1分区,sda5分区挂载成home分区,我的deepin用户名是key…

微软的转型中?

北京时间8月23日夜,微软在其官网上发表新闻称,微软首席执行官Steve Ballmer将在12个月内退休。 微软在这篇《微软CEO Steve Ballmer将在12个月内退休》新闻中表示,其首席执行官Steve Ballmer已决定将在12个月内退休,尤其是当新的首…

k均值的损失函数_一种基于均值不等式的Listwise损失函数

1 前言1.1 Learning to Rank 简介Learning to Rank (LTR) , 也被叫做排序学习, 是搜索中的重要技术, 其目的是根据候选文档和查询语句的相关性对候选文档进行排序, 或者选取topk文档. 比如在搜索引擎中, 需要根据用户问题选取最相关的搜索结果展示到首页. 下图是搜索引擎的搜索…

sqlite3_exec

函数:sqlite3_exec(),称为便捷函数,封装了好多任务。 函数声明: int sqlite3_exec( sqlite * , const char * sql , sqlite_callback , void *data , char ** errmmsg) ; 其中 sqlite* 表示打开的数…

HBase 集群搭建

文章目录 安装前准备兼容性官方网址 集群搭建搭建 Hadoop 集群搭建 Zookeeper 集群解压缩安装配置文件高可用配置分发 HBase 文件 服务的启停启动顺序停止顺序 验证进程查看 Web 端页面 安装前准备 兼容性 1)与 Zookeeper 的兼容性问题,越新越好&#…

四叉树碰撞优化版,速度飞一样

http://bbs.9ria.com/thread-243675-1-1.html转载于:https://www.cnblogs.com/chenhongyu/p/3283165.html