工作日志day03
同时构建静态和动态库
//如果用这种方式,只会构建一个动态库,虽然静态库的后缀是.a
ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) ADD_LIBRARY(hello STATIC ${LIBHELLO_SRC})//修改静态库的名字,这样是可以的,但是我们往往希望他们的名字是相同的,只是后缀不同
ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) ADD_LIBRARY(hello_static STATIC ${LIBHELLO_SRC})
SET_TARGET_PROPERTIES
这条指令可以用来设置输出的名称,对于动态库,还可以用来指定动态库版本和API版本
同时构建静态和动态库
SET(LIBHELLO_SRC hello.cpp) ADD_LIBRARY(hello_static STATIC ${LIBHELLO_SRC}) //对hello_static的重名为hello SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "hello") //cmake在构建一个新的target时会尝试清理掉其他使用这个名字的库因为在构建libhello.so时,就会清理掉libhello.a SET_TARGET_PROPERTIES(hello_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) SET_TARGET_PROPERTIES(hello PROPERTIES OUTPUT_NAME "hello") SET_TARGET_PROPERTIES(hello PROPERTIES CLEAN_DIRECT_OUTPUT 1)
动态库的版本号
一般动态库都有一个版本号的关联
libhello.so.1.2 libhello.so ->libhello.so.1 libhello.so.1->libhello.so.1.2CMakeLists.txt插入如下
SET_TARGET_PROPERTIES(hello PROPERTIES VERSION 1.2 SOVERSION 1)VERSION指代动态库版本,SOVERSION指代API版本
安装共享库和头文件
本例中我们将hello的共享库安装到<prefix>/lib目录
将hello.h安装到<prefix>/include/hello目录
//文件放在该目录下 INSTALL(FILES hello.h DESTINATION include/hello) //二进制,静态库动态库安装都用TARGETS //ARCHIVE 特指静态库,LIBRARY特指动态库,RUNTIME特指可执行目标二进制 INSTALL(TARGETS hello hello_static LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)指定cmake -D CMAKE_INSTALL_PREFIX=/usr ..
如何使用生成的hello.h,libhello.so,libhello.a
使用外部共享库和头文件
#include <hello.h> int main(){a();return 0; }PROJECT(HELLO) ADD_SUBDIRECTORY(src bin)接上回安装头文件之后
解决:make后头文件找不到的问题
include<helllo/hello.h>这样include是可以的
关键字:INCLUDE_DIRECTORIES这条指令可以用来向工程添加多个特定的头文件搜索路径,路径之间用空格分割
在CMakeLists.txt中加入头文件搜索路径
INCLUDE_DIRECTORIES(/usr/include/hello)
INCLUDE_DIRECTORIES(/usr/include/hello) ADD_EXECUTABLE(hello main.cpp) TARGET_LINK_LIBRARIES(hello libhello.so)
mv /usr/lib/libhello.so /usr/lib64
cd /进入根目录
mv 源文件路径 目标文件路径:移动
mv /home/a1/b1/c1/d1 /home/a1/b1/ 将d1移动到b1的文件夹下
mv /home/a1/b1/c1/d1 /tmp/d222移动并将d1改名为d222
mv /tmp/d222 /tmp/d333只改名
ctrl+shift++:屏幕放大
cat 文件 :查看全部内容
head -3 文件:查看前三行
tail
more 文件:翻页 空格翻篇回车换行
grep c /1.txt:过滤
ls 路径 >文件名:将路径下的目录信息放入文件中
gedit 文件名:打开文件
vim 文件名 i :wq yy复制,p粘贴 dd删除 5dd一下删除5行 u撤销 x删除一个字
相关文章:
工作日志day03
同时构建静态和动态库 //如果用这种方式,只会构建一个动态库,虽然静态库的后缀是.a ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) ADD_LIBRARY(hello STATIC ${LIBHELLO_SRC}) //修改静态库的名字,这样是可以的,但是我们往往希望他…...
【数据挖掘与商务智能分析】第三章 线性回归模型
一元线性回归 一元线性回归的代码实现 1. 绘制散点图 import matplotlib.pyplot as plt X = [[1], [2], [4], [5]] Y...
iOS开发之UIStackView基本运用
UIStackView UIStackView是基于自动布局AutoLayout,创建可以动态适应设备方向、屏幕尺寸和可用空间的任何变化的用户界面。UIStackView管理其ArrangedSubview属性中所有视图的布局。这些视图根据它们在数组中的顺序沿堆栈视图的轴排列。由axis, distribution, align…...
【java】为什么 main 方法是 public static void ?
main 方法是我们学习Java编程语言时知道的第一个方法,你是否曾经想过为什么 main 方法是 public、static、void 的。当然,很多人首先学的是C和C,但是在Java中main方法与前者有些细微的不同,它不会返回任何值,为什么 ma…...
最简单的线性回归模型-标量
首先考虑yyy为标量,www为标量的情况,那么我们的线性函数为ywxbywxbywxb。每批输入的量batch size 为111,每批输入的xxx为一个标量,设为x∗x^*x∗,标签yyy同样为一个标量,设为y∗y^*y∗。因此每批训练的损失…...
k8s-Kubernetes集群升级
文章目录前言一、集群升级1.部署cri-docker (所有集群节点)2.升级master节点3.升级worker节点前言 一、集群升级 https://v1-24.docs.kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/ 1.部署cri-docker (所有…...
Linux25 -- 监听队列链接上限测试、命令uname、ulimit
一、监听队列链接上限测试 1、res listen(sockfd,5); //创建监听队列res listen(sockfd,5);不懂版本有不同的限制,2.6早期版本有限制为128,超过默认为128,可使用uname -a 查看版本 2、测试将链接数到达上限, 方法࿱…...
idea:地址被占用
问题启动idea报:java.net.BindException: Address already in use: bind,具体截图如下:解决步骤1、首先想到的是改idea端口,但按网上方法试下了几个4位数和5位数的端口,没啥作用2、根据idea抛异常的弹出框提示…...
JavaScript常用小技巧(js优化)
JavaScript常用小技巧(js优化)常见JS操作1、解构交换两数2、短路赋值3、if 判断优化4、 switch 判断优化6、动态正则匹配Number1、幂运算2、安全计算String1、反转字符串、判断是否回文数2、数组求和3、初始化二维数组Object1、对象遍历2、冻结对象3、解…...
【项目实战】MySQL 5.7中的关键字与保留字详解
一、什么是关键字和保留字 关键字是指在SQL中有意义的字。 某些关键字(例如SELECT,DELETE或BIGINT)是保留的,需要特殊处理才能用作表和列名称等标识符。 这一点对于内置函数的名称也适用。 二、如何使用关键字和保留字 非保留关…...
Git图解-常用命令操作
目录 一、前言 二、初始化仓库 三、添加文件 四、Git 流程全景图 五、Git工作流程 六、工作区和暂存区 七、查看文件状态 八、查看提交日志 九、查看差异 十、版本回退 十一、管理修改 十二、修改撤销 十三、删除文件 十四、分支管理 十五、项目分支操作 十六、…...
LeetCode096不同的二叉搜索树(相关话题:卡特兰数)
目录 题目描述 解题思路 代码实现 进出栈序列理解卡特兰数分析策略 相关知识 参考文章 题目描述 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: …...
软件测试7
一 CS和BS软件架构 CS:客户端-服务器端,BS:浏览器端-服务器端 区别总结: 1.效率:c/s效率高,某些内容已经安装在系统中了,b/s每次都要加载最新的数据 2.升级:b/s无缝升级,…...
12 结构:如何系统设计框架的整体目录?
到现在,我们已经将 Gin 集成到框架 hade 中,同时又引入了服务容器和服务提供者,明确框架的核心思想是面向服务编程,一切皆服务,所有服务都是基于协议。后续也会以服务的形式,封装一个个的服务,让…...
假如你知道这样的MySQL性能优化
1. 为查询缓存优化你的查询 大多数的 MySQL 服务器都开启了查询缓存。这是提高性最有效的方法之 一,而且这是被 MySQL 的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同…...
79、ClimateNeRF: Physically-based Neural Rendering for Extreme Climate Synthesis
简介主页物理模拟可以很好地预测天气影响。神经辐射场产生SOTA场景模型。ClimateNeRF 允许我们渲染真实的天气效果,包括雾霾、雪和洪水 ,结果可以通过有物理意义的变量来控制,比如水位 ,这允许人们可视化气候变化的结果将对他们产…...
前端面试题(一)
目录 前言 一、css3实现布局的方式有哪些? 1.flex布局 2.grid布局 二、jquery的扩展机制? 三、jquery动画和css实现动画的本质区别? 四、不使用css的动画,如何实现盒子从左到右移动? 五、使用过的框架…...
Java基础常见面试题(七)
序列化和反序列化 Java序列化与反序列化是什么? Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程。 序列化: 序列化是把对象转换成有序字节流,以便在网络上传输或者保存在本地…...
【springmvc】报文信息转换器
HttpMessageConverter HttpMessageConverter,报文信息转换器,将请求报文转换为Java对象,或将Java对象转换为响应报文 HttpMessageConverter提供了两个注解和两个类型: RequestBody, ResponseBody, Reques…...
3.5知识点复习
extern:表示声明。 没有内存空间。 不能提升。const:限定一个变量为只读变量。volatile:防止编译器优化代码。volatile int flg 0; register:定义一个寄存器变量。没有内存地址。register int a 10;字符串:C语言中&a…...
开源工具赋能PS4玩家:GoldHEN Cheats Manager的全方位游戏体验优化方案
开源工具赋能PS4玩家:GoldHEN Cheats Manager的全方位游戏体验优化方案 【免费下载链接】GoldHEN_Cheat_Manager GoldHEN Cheats Manager 项目地址: https://gitcode.com/gh_mirrors/go/GoldHEN_Cheat_Manager GoldHEN Cheats Manager是一款专为PlayStation …...
OpenClaw版本升级:nanobot镜像迁移全记录
OpenClaw版本升级:nanobot镜像迁移全记录 1. 升级背景与准备工作 去年我在本地部署了基于OpenClaw v1.2的nanobot镜像,这套系统一直稳定运行着我的自动化办公流程。直到上个月收到社区通知,新版本v2.1重构了核心架构,特别是技能…...
s2-pro GPU算力适配实战:显存优化部署让语音合成延迟降低40%
s2-pro GPU算力适配实战:显存优化部署让语音合成延迟降低40% 1. 专业语音合成新选择 s2-pro是Fish Audio开源的专业级语音合成模型镜像,它让高质量的文本转语音变得触手可及。与普通语音合成工具不同,s2-pro支持通过参考音频复用音色&#…...
VMware虚拟机安装Ubuntu教程:创建独立的Qwen3-14B-AWQ模型测试环境
VMware虚拟机安装Ubuntu教程:创建独立的Qwen3-14B-AWQ模型测试环境 1. 为什么需要虚拟机测试环境 在测试大语言模型时,使用虚拟机可以避免污染宿主机环境。特别是像Qwen3-14B-AWQ这样的模型,依赖项复杂,直接在主机上安装可能会与…...
如何高效使用iOS推送调试工具:SmartPush完整操作指南
如何高效使用iOS推送调试工具:SmartPush完整操作指南 【免费下载链接】SmartPush SmartPush,一款iOS苹果远程推送测试程序,Mac OS下的APNS工具APP,iOS Push Notification Debug App 项目地址: https://gitcode.com/gh_mirrors/smar/SmartPush SmartPush是一款…...
Node.js 轻量级数据库 NeDB 实战指南:从入门到精通
1. 为什么你需要了解NeDB 如果你正在寻找一个轻量级的Node.js数据库解决方案,NeDB绝对值得你花时间研究。作为一个嵌入式数据库,它不需要单独运行数据库服务,数据可以直接存储在内存或磁盘文件中。我在多个小型项目中使用过NeDB,最…...
别再滥用Tick了!UE5里Cast To的正确打开方式与性能实测
UE5性能优化实战:Tick事件中Cast To的高效替代方案 在虚幻引擎5的项目开发中,性能优化往往隐藏在那些看似无害的日常操作里。Tick事件中的Cast To操作就像房间里的大象——人人都知道它存在,却常常低估它的影响。当项目规模扩大、逻辑复杂度提…...
OpenCore Legacy Patcher终极指南:让你的老Mac焕发新生,体验最新macOS
OpenCore Legacy Patcher终极指南:让你的老Mac焕发新生,体验最新macOS 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否还在为老旧的Mac无法升…...
【声音克隆】Qwen3-TTS-12Hz-1.7B-Base优化技巧:如何生成更自然、更逼真的语音
【声音克隆】Qwen3-TTS-12Hz-1.7B-Base优化技巧:如何生成更自然、更逼真的语音 1. 理解Qwen3-TTS的核心能力 1.1 多语言与方言支持 Qwen3-TTS-12Hz-1.7B-Base模型支持10种主要语言和多种方言风格,包括中文、英文、日文等。这种广泛的语言覆盖能力使其…...
UPF实战:如何用set_isolation命令优化电源域隔离策略(附常见配置误区解析)
UPF实战:如何用set_isolation命令优化电源域隔离策略(附常见配置误区解析) 在复杂的SoC设计中,电源管理已成为芯片性能与可靠性的关键瓶颈。当工程师面对多电压域设计时,电源域隔离策略的优劣直接影响着芯片的静态功耗…...







