Android_NDK调试
第一步:
链接log动态库
在Android.mk文件中添加
LOCAL_LDLIBS +=-llog
注意:一定要在
include $(BUILD_SHARED_LIBRARY)
之上添加,因为当执行到这句话的时候就表示所有的lib动态库已经加载完毕了,所以当你在这句代码之后再添加链接动态库的命令时,动态库是加载不成功的,当执行ndk-build时,会报链接不到动态库的错误
第二步:
在对应的CPP文件中添加
#include <android/log.h>
第三步:
在CPP文件中使用__android_log_print函数打印日志
该函数有三个参数,第一个为打印日志的类型取值有:
ANDROID_LOG_DEFAULT,
ANDROID_LOG_VERBOSE,
ANDROID_LOG_DEBUG,
ANDROID_LOG_INFO,
ANDROID_LOG_WARN,
ANDROID_LOG_ERROR,
ANDROID_LOG_FATAL,
ANDROID_LOG_SILENT
第二个为自定义的日志的Tag
第三个为可变参数,输出的日志信息
建议定义宏使用,如下:
#ifndef LOG_TAG
#define LOG_TAG “my_tag”
#define LOGINFO(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGERR(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
Char* str = “my info”;
LOGINFO(“配置信息:%s”, str);
第四步:
重新ndk-build一下CPP程序
第五步:
重新Refresh Linked C++ projects
相关文章:
Android_NDK调试
第一步: 链接log动态库 在Android.mk文件中添加 LOCAL_LDLIBS -llog 注意:一定要在 include $(BUILD_SHARED_LIBRARY) 之上添加,因为当执行到这句话的时候就表示所有的lib动态库已经加载完毕了,所以当你在这句代码之后再添加…...
全量知识系统 概要设计(SmartChat回复)
以下是根据我给出的 系统概要 “提要和纪要”,SmartChat给出的概要设计。我给出的“提要和纪要”可参考链接: https://blog.csdn.net/ChuanfangChen/article/details/136861822 -------------------------------- 概要设计文档 1. 简介 全量知识系统…...
一、SpringBoot基础搭建
本教程主要给初学SpringBoot的开发者,通过idea搭建单体服务提供手把手教学例程,主要目的在于理解环境的搭建,以及maven模块之间的整合与调用 源码:jun/learn-springboot 以商城项目为搭建例子,首先计划建1个父模块&…...
some/ip CAN CANFD
关于SOME/IP的理解 在CAN总线的车载网络中,通信过程是面向信号的 当ECU的信号的值发生了改变,或者发送周期到了,就会发送消息,而不考虑接收者是否需要,这样就会造成总线上出现不必要的信息,占用了带宽 …...
HTTP Header Fields
HTTP(超文本传输协议)中包含多种类型的头部字段(Header Fields),以下是常见的HTTP头部字段及其作用: ### 通用头字段(General Header Fields) - **Cache-Control**: 控制缓存行为&a…...
基于FPGA的FFT图像滤波设计
1.FFT滤波算法介绍 FFT滤波就是通过傅里叶运算将图像转换到频域空间,然后在频域中对图像进行处理,最后将处理后的图像通过傅里叶逆运算将图像转会到时域空间。 在频域空间中,我们能够更好的对图像的噪声进行分析,然后找出相关规律…...
WPF 立体Border
WPF 立体Border ,用来划分各个功能区块 在资源文件中,添加如下样式代码: <Style x:Key"BaseBorder" TargetType"Border"><Setter Property"Background" Value"White" /><Setter Prop…...
java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
今天在使用springBoot连接influxdb报错 java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics 详细报错如下,提出我们缺少一个依赖 原因是由于创建influxdb客户端缺少Kotlin运行时库 解决办法就是 1.显示的添加okhttp的依赖 <dependency>…...
代码随想录(day8)——字符串
Leetcode.344 反转字符串: 344. 反转字符串 - 力扣(LeetCode) 原理过于简单,没什么好说的,直接给出代码: class Solution { public:void reverseString(vector<char>& s) {int end s.size()-1…...
JavaScript 权威指南第七版(GPT 重译)(二)
第四章:表达式和运算符 本章记录了 JavaScript 表达式以及构建许多这些表达式的运算符。表达式 是 JavaScript 的短语,可以 评估 以产生一个值。在程序中直接嵌入的常量是一种非常简单的表达式。变量名也是一个简单表达式,它评估为分配给该变…...
【python_往企业微信群中发送文件】
python_往企业微信群中发送文件 这个是用企业微信群机器人的功能,没有用到后台应用。群机器人 #-*- coding:utf-8-* import requests#类型:voice,file file_type"file" file_path"D:\desktop\不过.jpg" webhookkey"xxxx"#…...
华为校招机试 - 循环依赖(20240320)
题目描述 给定一组元素,及其依赖关系,一个元素可以依赖于多个元素(不包括自己,被依赖元素不会重复),一个元素也可被多个元素依赖。 假定总是存在唯一的循环依赖,请输出该循环依赖。 输入描述 第一行是个正整数 N (1 < N < 100),表示依赖关系的个数。 下面每…...
基于Spring Boot技术的幼儿园管理系统
摘 要 随着信息时代的来临,过去的传统管理方式缺点逐渐暴露,对过去的传统管理方式的缺点进行分析,采取计算机方式构建幼儿园管理系统。本文通过课题背景、课题目的及意义相关技术,提出了一种活动信息、课程信息、菜谱信息、通知公…...
查找众数及中位数 - 华为OD统一考试(C卷)
OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 众数是指一组数据中出现次数量多的那个数,众数可以是多个。 中位数只是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那…...
bash命令执行.sh文件 windows python环境
报错: bash : 无法将“bash”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1 ’ bash fetch_data.sh ‘ ~~~~ CategoryInfo : Object…...
refreactive vue3
ref 可以定义:基本类型、对象类型的响应式数据 reactive 只能定义:对象类型的响应式数据 <template><div class"person"><h2>Name: {{ name }}</h2><h2>Age: {{ age }}</h2><h2>Tel: {{ tel }}</h2><button cl…...
【项目实践Day06】异步请求与同步请求+Ajax+微信小程序上实现发送异步请求
什么是同步和异步 同步 在主线程上排队执行的任务,只有前一个任务执行完毕,才能继续执行下一个任务。也就是一旦调用开始,就必须等待其返回结果,程序的执行顺序和任务排列顺序一致。客户端必须等待服务器端的响应。在等待的期间客…...
Elasticsearch面试系列-01
1. 什么是 Elasticsearch? ES是一种开源、RESTful、可扩展的基于文档的搜索引擎,它构建在Lucene库上。 用户使用Kibana就可以可视化使用数据,同时Kibana也提供交互式的数据状态呈现和数据分析。 Apache Lucene搜索引擎基于JSON文档来进行搜索管理和快速搜索。 Elasticse…...
QT tableWidget横向纵向设置
横向控件 要设置QTabWidget选项卡的字体方向,可以使用QTabWidget的setTabPosition()方法。通过传递Qt枚举值QTabWidget.east或QTabWidget.west作为参数,可以设置选项卡的字体方向为从左到右或从右到左。 myTabWidget QTabWidget() myTabWidget.setTabP…...
Unity Mesh简化为Cube mesh
Mesh简化为Cube mesh 🍳食用🥙子物体独立生成CubeMesh🥪合并成一个CubeMesh🌭Demo 🍳食用 下载并导入插件👈即可在代码中调用。 🥙子物体独立生成CubeMesh gameObject.ToCubeMesh_Invidual()…...
CV-CUDA快速入门:10分钟学会构建你的第一个GPU加速图像处理应用
CV-CUDA快速入门:10分钟学会构建你的第一个GPU加速图像处理应用 【免费下载链接】CV-CUDA CV-CUDA™ is an open-source, GPU accelerated library for cloud-scale image processing and computer vision. 项目地址: https://gitcode.com/gh_mirrors/cv/CV-CUDA …...
把 Flask 搬进 ESP,高中生自研嵌入式 Web 框架 MicroFlask !唤
如果有多个供应商,你也可以使用 [[CC-Switch]] 来可视化管理这些API key,以及claude code 的skills。 # 多平台安装指令 curl -fsSL https://claude.ai/install.sh | bash ## Claude Code 配置 GLM Coding Plan curl -O "https://cdn.bigmodel.cn/i…...
财会行业学数据分析的价值分析
数字化转型背景下财会行业的变革需求财会行业正经历从传统核算向数据驱动的转型。企业财务数据量激增,人工处理效率低下,而数据分析能实现自动化处理、实时监控和深度洞察。例如,通过预测模型优化资金配置,或利用可视化工具快速识…...
三个角度分析AI自动写文+自动发布自媒体矩阵提效实测
搞自媒体干久了,有谁没动过心思琢磨能不能让机器来帮忙写、帮忙发?尤其是你手头上攥着五六个账号,天天瞅着不同平台的规则、排版、发布时间的安排,脑袋都快给弄炸。最近我试了这么一个流程:用人工智能自动去写文章然后…...
高阶 HDI 同行参考:40 层>5 阶 HDI 技术难点
【实战复盘】19 天拿下 40 层>5 阶板的工艺 项目管理方案 标签:高阶HDI、激光钻孔、电镀均匀性、多次压合最近刚完成一款40层且大于5阶的高阶HDI项目。坦白说,这板子难度不小:多次压合对位、激光钻孔一致性、电镀填孔均匀性&…...
大模型智能体 (agent)简易流程介绍谖
引言 在现代软件开发中,性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序,性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言,性能优化涉及多个层面&#x…...
构建企业级统一认证中心:Spring Boot OAuth2 Server 的架构实践与深度解析
构建企业级统一认证中心:Spring Boot OAuth2 Server 的架构实践与深度解析 【免费下载链接】oauth2-server spring boot (springboot 3) oauth2 server sso 单点登录 认证中心 JWT,独立部署,用户管理 客户端管理 项目地址: https://gitcode.com/gh_mirrors/oau/oa…...
如何快速实现AI模型生产级部署:AITemplate的7个最佳实践指南
如何快速实现AI模型生产级部署:AITemplate的7个最佳实践指南 【免费下载链接】AITemplate AITemplate is a Python framework which renders neural network into high performance CUDA/HIP C code. Specialized for FP16 TensorCore (NVIDIA GPU) and MatrixCore …...
好写作AI毕业论文功能揭秘:为什么用了AI反而不会写了?因为你忽略了最关键的三个字
当别人还在用AI替代思考的时候,聪明人已经把AI变成了学术教练。 ——大家好,我是教论文写作的XX老师。今天不教你“用什么”,而教你怎么“用对”。 先问你一个问题:你用AI写过论文吗? 如果你用过,你可能会…...
直接选择排序(选择排序)
1.直接选择排序介绍直接选择排序就是每轮从待排元素中找一个最小的,放到要排的位置(比如第一次要排的位置是0号下标,第二次要排的位置是1号下标...),重复直到排完。举个生活例子 🍎就像你在班里按身高排队&…...
