波奇学Linux:动静态库
创建静态库

Makefile文件

mymath.c文件
mymath.h文件

编译main.c文件

gcc 编译时会把在系统目录中寻找头文件和库文件,文件不在系统目录中用参数
-I 头文件所在文件夹/ -L 库的地址文件夹 -l+除去lib和后缀。
拷贝文件到系统目录即可不用参数
库的安装类似于把头文件和库文件拷贝到系统文件中
库可以提供一个全局变量,如errno就是C语言提供的
如果系统默认动态链接,只提供静态链接,gcc只能提供静态链接。
动态库

动态库在程序运行时被加载到内存,所以产生库的方式和产生可执行程序的命令类似



同时连接动静库

可执行程序链接动态库,必须让加载器和gcc编辑器同时知道位置,方法如下
方法一:把动态库拷贝到系统目录/lib64/usr/lib64
方法二:在系统目录创建软链接指向动态库

方法三:环境变量$LD_LIBRARY_PATH系统搜索动态库路径,将路径添加到这个变量里

方法四:/etc/ld.so.conf.d建立自己的路径动态库路径配置文件,然后重新ldconfig即可。
动静态库区别
静态库相当于把代码拷贝到可执行程序中,当可执行程序链接后,删掉静态库依然可以运行。
动态库相当于程序运行时跳出来运行动态库的代码,动态库删除后,程序不能运行。
动态库在系统中加载之后,会被所有的程序共享,在内存中只会被加载一份。
动态库加载
一份动态库加载到内存中通过页表映射加载到多个进程地址空间的共享区,正文代码运行到库的时候进入共享区。
执行的代码都是在进程地址空间进行执行。
系统在运行时,一定会存在多个动态库,通过os管理起来
动态库的数据会发生写时拷贝,如全局变量。
可执行程序编译完后没有加载到自己内存中有自己的地址。程序可以分区并有地址
平坦模式0~4GB,上面的地址并不是真实的物理地址,是逻辑地址

相关文章:
波奇学Linux:动静态库
创建静态库 Makefile文件 mymath.c文件 mymath.h文件 编译main.c文件 gcc 编译时会把在系统目录中寻找头文件和库文件,文件不在系统目录中用参数 -I 头文件所在文件夹/ -L 库的地址文件夹 -l除去lib和后缀。 拷贝文件到系统目录即可不用参数 库的安装类似于把头文件…...
1723. 完成所有工作的最短时间
文章目录 题意思路代码 题意 题目链接 K个工人,一共jobs个任务,问怎样分配任务,最短的最长工人完成任务完成时间。 思路 DFS剪枝(最大单个工人jobs时间超过ans时间;有限空闲工人拿任务)模拟退火dp 代码…...
初始HTTP协议
一、http协议 1、http相关概念 互联网:是网络的网络,是所有类型网络的母集因特网:世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上,大家把连接在因特网上的计算机都成为主机。万维网:WWW(…...
C++ 位运算常用操作 二进制中1的个数
给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。 输入格式 第一行包含整数 n 。 第二行包含 n 个整数,表示整个数列。 输出格式 共一行,包含 n 个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表…...
大数据领域的数据仓库
在大数据领域,数据仓库(Data Warehouse)是一个用于存储、管理和分析大量数据的集中式系统。它从多个异构数据源收集数据,对数据进行清洗、转换和整合,然后将其存储在一个集中的位置,以支持复杂的查询、报告…...
sentinel的资源数据指标是如何采集
资源数据采集 之前的NodeSelectorSlot和ClusterBuilderSlot已经完成了对资源调用树的构建, 现在则是要对资源进行收集, 核心点就是这些资源数据是如何统计 LogSlot 作用: 记录异常请求日志, 用于故障排查 public class LogSlot extends AbstractLinkedProcessorSlot<Def…...
算法刷题:找到字符串中所有的字母异位词
找到字符串中所有的字母异位词 .题目链接题目详情题目解析算法原理滑动窗口流程图定义指针及变量进窗口判断出窗口更新结果 我的答案 . 题目链接 找到字符串中所有的字母异位词 题目详情 题目解析 所谓的异位词,就是一个单词中的字母,打乱顺序,重新排列得到的单词 如:abc-&g…...
【Java EE初阶十九】网络原理(四)
4. 数据链路层 数据链路层也有很多种协议,其中一个比较常见常用的,就是“以太网协议”(通过网线/光纤, 来通信所使用的协议叫做以太网协议,以太网是横跨数据链路层 物理层); 4.1 以太网数据帧格式 帧头 载荷(IP 数据…...
12.23 校招 实习 内推 面经
绿*泡*泡VX: neituijunsir 交流*裙 ,内推/实习/校招汇总表格 1、社招&校招 | 轻舟智航 社招 & 2024校招 社招&校招 | 轻舟智航 社招 & 2024校招 2、校招 | 成都精灵云科技2024校园招聘补录 校招 | 成都精灵云科技2024校园招聘补录 …...
FPGA转行ISP的探索之一:行业概览
ISP的行业位置 最近看到一个分析,说FPGA的从业者将来转向ISP(Image Signal Process图像信号处理)是个不错的选择,可以适应智能汽车、AI等领域。故而我查了一下ISP,对它大致有个概念。 传统的ISP对应的是相机公司&…...
Linux系统之部署网页小游戏合集网站
Linux系统之部署网页游戏合集网站 一、项目介绍1.1 项目介绍1.2 自定义配置方法二、本次实践介绍2.1 环境规划2.2 本次实践介绍三、检查本地环境3.1 检查操作系统版本3.2 检查当前yum仓库四、安装httpd软件4.1 检查yum仓库4.2 安装httpd软件4.3 启动httpd服务4.4 查看httpd服务…...
【白嫖8k买的机构vip教程】python(2):python_re模块
python之re模块 一、正则表达式 re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用。注意…...
【CSS】display:flex和display: inline-flex区别
flex:将对象作为弹性伸缩盒显示 inline-flex:将对象作为内联块级弹性伸缩盒显示 DOM结构 <div class"main"><div></div><div></div><div></div><div></div></div>flex .main{…...
rpm安装gitlab
1.1 下载gitlab安装包 使用rpm包安装命令安装gitlab的rpm包,下载地址为https://packages.gitlab.com/gitlab/gitlab-ce社区版本; 推荐使用清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab安装包详见࿱…...
图论之dfs与bfs的练习
dfs--深度优选搜索 bfs--广度优先搜索 迷宫问题--dfs 问题: 给定一个n*m的二维迷宫数组其中S是起点,T是终点,*是墙壁(无法通过), .是道路 问从起点S出发沿着上下左右四个方向走,能否走到T点&a…...
Vue练习5:图片的引入
后续会补充 1.require引入 src -> asstes <template><img :src"url"> </template><script> export default {name: App,data(){return{url: require("./assets/logo.png"),}} } </script> 2.import引入 src…...
SpringBoot+Kafka
文章目录 一、依赖二、配置文件三、API1、生产者2、消费者 一、依赖 <!-- spring-kafka(与kafka的版本一致) --> <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId>…...
世界顶级名校计算机专业,都在用哪些书当教材?(文末送书)
目录 01《深入理解计算机系统》02《算法导论》03《计算机程序的构造和解释》04《数据库系统概念》05《计算机组成与设计:硬件/软件接口》06《离散数学及其应用》07《组合数学》08《斯坦福算法博弈论二十讲》参与规则 清华、北大、MIT、CMU、斯坦福的学霸们在新学期里…...
蓝桥杯刷题--python-8(2023 填空题)
0幸运数 - 蓝桥云课 (lanqiao.cn) res=0 for i in range (1,100000000):l_n=[]for j in str(i):l_n.append(int(j))if len(l_n) % 2 ==0:cur =len(l_n)>>1if sum(l_n[:cur])==sum(l_n[cur:]):res+=1 print(res) 0有奖问答 - 蓝桥云课 (lanqiao.cn) dfs def bfs(score, q…...
Eclipse - Reset Perspective
Eclipse - Reset Perspective 1. Window -> Perspective -> Reset Perspective2. Reset Perspective -> YesReferences 1. Window -> Perspective -> Reset Perspective 2. Reset Perspective -> Yes References [1] Yongqiang Cheng, https://yo…...
NVIDIA Profile Inspector终极指南:解锁显卡隐藏功能,5步优化游戏性能
NVIDIA Profile Inspector终极指南:解锁显卡隐藏功能,5步优化游戏性能 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否经常觉得游戏画面不够流畅?或者发现显卡…...
机器学习揭示h-BN莫尔超晶格中滑动铁电的拓扑极化图案与调控
1. 项目概述:当机器学习遇见莫尔物理最近几年,但凡关注凝聚态物理前沿的人,都绕不开“莫尔超晶格”这个词。简单来说,就是把两层原子晶体(比如石墨烯、过渡金属硫化物)稍微扭一个角度,或者让它们…...
[智能体-26]:ollama, 让模型的部署和提供服务(远程或本地)变得异常简单
极简一键部署,自动封装OpenAI 标准 API,本地 / 远程服务秒启用,无需复杂环境编译、配置端口、适配接口。核心亮点安装零门槛跨 Windows/Mac/Linux,一键安装包,无需 CUDA、Python 环境预处理。模型一键拉取运行bash运行…...
虚拟化与加密环境下勒索软件检测:基于存储IO模式与XGBoost的鲁棒方案
1. 项目概述:当勒索软件遇上虚拟化与加密在数据安全领域,勒索软件无疑是最具破坏性的威胁之一。它不像传统病毒那样破坏文件,而是通过加密用户数据来勒索赎金,攻击目标从个人电脑蔓延到企业服务器和云环境。传统的防御手段&#x…...
在CentOS 7上搞定Cadence IC618、XCELIUM和SPECTRE全家桶:一个Modulefile环境变量配置全攻略
在CentOS 7上搞定Cadence IC618、XCELIUM和SPECTRE全家桶:一个Modulefile环境变量配置全攻略对于芯片设计工程师而言,Cadence工具链的部署往往意味着数天的系统调优和环境调试。当IC设计、数字仿真和电路模拟三大核心工具需要协同工作时,环境…...
C# AR应用性能优化三大硬核策略
1. 这不是“加个特效”就能解决的问题:AR应用卡顿背后的真实战场C# AR应用优化实战——这七个字,我盯着看了三分钟。不是因为难懂,而是因为太熟悉了。过去三年,我带过7个AR项目,从工业设备远程巡检到博物馆文物交互导览…...
避坑指南:在Ubuntu 22.04服务器上部署LibreOffice和JODConverter的完整流程(含中文字体配置)
Ubuntu 22.04服务器部署LibreOffice与JODConverter全流程:从中文字体配置到生产级优化在文档管理系统开发中,文件预览功能一直是刚需。不同于Windows环境的图形化操作,Linux服务器部署面临依赖缺失、字体配置、服务管理等诸多挑战。本文将手把…...
ESP32嵌入式AI语音助手安全加固实战指南
1. 这不是“调个API就完事”的玩具项目,而是一次对嵌入式AI终端真实攻防边界的摸底你手头刚拿到一份标榜“ESP32本地LLM语音唤醒”的开源AI语音助手源码,烧录进开发板后,它能听懂“打开灯”“今天天气怎么样”,甚至能用合成语音回…...
Web渗透测试全流程实战指南:从侦察到报告的结构化方法
1. 这不是“黑客速成班”,而是一张能真正带你进渗透测试实战现场的路线图很多人点开“Web渗透测试学习流程图”时,心里想的是:学完这个,我是不是就能黑进某个网站?能不能接单赚钱?甚至幻想自己坐在咖啡馆里…...
Hexo 排坑记:删除所有文章后首页无法访问(Cannot GET)
背景 最近在使用 Hexo Butterfly 主题搭建个人博客时,遇到一个奇怪的问题:我把 source/_posts 下的所有文章都删掉后,重新生成并启动本地服务器,访问 http://localhost:4000 竟然直接显示 Cannot GET /,首页完全打不开…...
