初识Linux · 动静态库(incomplete)
目录
前言:
静态库
动态库
前言:
继上文,我们从磁盘的理解,到了文件系统框架的基本搭建,再到软硬链接部分,我们开始逐渐理解了为什么运行程序需要./a.out了,这个前面的.是什么我们也知道了。
可是我们在文件权限部分,我们已经见识了最基本的库,知道了Linux的动态库的后缀是.so 静态库是.a,Windows系统的动态库是.dll,静态库是.lib。并且我们知道库的名字要去掉前缀,去掉后缀。这是我们最开始的对于库的认识。
那么我们是否是否使用过库呢?
当然是使用过的,在使用C语言C++的时候,我们使用的头文件所在的库,比如std库,我们肯定是使用过的。那么库的作用是什么呢?
在stl容器里面,都是有基本函数的接口,比如vector的push_back,我们使用的都是对应的接口,那么具体的实现在哪里呢?
具体的实现肯定是放在.cc文件,经过编译器编译成了.o文件,经过糅合起来,形成了最终的库。
现在我们就对于静态库,动态库,我们从是什么,为什么,怎么办三个方面来谈论。
静态库
为了生成静态库,我们先模仿实现多个.c文件多个.h文件:

然后在里面写入对应的代码:
#pragma once
int Sub(int x,int y);#include "sub.h"int Sub(int x,int y)
{return x - y;
}#include "add.h"int Add(int x,int y)
{return x + y;
}#pragma once
int Add(int x,int y);
我们创建了两个.c文件和两个.h文件。
那么我们在test.c文件里面进行测试。
#include <stdio.h>
#include "add.h"
#include "sub.h"int main()
{printf("a + b = %d\n", Add(10,20));printf("a - b = %d\n", Sub(10,20));return 0;
}
如果我们直接编译的话,肯定是编不过去的,因为真正的实现是在.c里面:

那么我们不妨先生成.o文件,为了静态库做准备:

然后使用命令ar生成静态库:

其中replace 是r,c是create,如果没有就创建。

这是对于静态库的创建,libmyc.a就是我们创建的静态库,但是实际上,myc才是这个静态库的名字。
可是对于库的使用来说,比如C语言提供多个库,我们都是#include <stdio.h>的,当使用的时候,编译器会去安装好的库里面查找,所以这里面肯定存在路径问题。

使用L l选项可以解决该问题。
动态库
动态库部分后面介绍吧。
这里还涉及附加问题,后续更新。
感谢阅读!
相关文章:
初识Linux · 动静态库(incomplete)
目录 前言: 静态库 动态库 前言: 继上文,我们从磁盘的理解,到了文件系统框架的基本搭建,再到软硬链接部分,我们开始逐渐理解了为什么运行程序需要./a.out了,这个前面的.是什么我们也知道了。…...
华为OD机试 - 匿名信(Java 2024 E卷 100分)
华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(E卷D卷A卷B卷C卷)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加…...
通过rancher2.7管理k8s1.24及1.24以上版本的k8s集群
目录 初始化实验环境 安装Rancher 登录Rancher平台 通过Rancher2.7管理已存在的k8s最新版集群 文档中的YAML文件配置直接复制粘贴可能存在格式错误,故实验中所需要的YAML文件以及本地包均打包至网盘. 链接:https://pan.baidu.com/s/1oYX4eGoBtW_R-7i…...
text-align的属性justify
text-align常用的属性是left、center、right,具体的可参考css解释,今天重点记录的对象是justify justify 可以使文本的两端都对齐在两端对齐文本中,文本行的左右两端都放在父元素的内边界上。然后,调整单词和字母间的间隔&#x…...
使用python自制桌面宠物,好玩!——枫原万叶桌宠,可以直接打包成exe去跟朋友炫耀。。。
大家好,我是小黄。 今天我们使用python实现一个桌面宠物。只需要gif动态图片就行。超级简单容易上手。 #完整源代码可在下方图片免费获取 一:下载相关的库文件。 我们本次使用到的库文件为:tkinter和pyautogui 下载命令: pip…...
使用 ASP.NET Core 8.0 创建最小 API
构建最小 API,以创建具有最小依赖项的 HTTP API。 它们非常适合需要在 ASP.NET Core 中仅包括最少文件、功能和依赖项的微服务和应用。 本教程介绍使用 ASP.NET Core 生成最小 API 的基础知识。 在 ASP.NET Core 中创建 API 的另一种方法是使用控制器。 有关在最小 …...
气候服务平台ClimateSERV2.0简介(python)
1 简介 ClimateSERV 2.0允许开发从业者、科学家/研究人员和政府决策者可视化和下载历史降雨数据、植被状况数据以及 180 天的降雨和温度预报,以增进对农业和水资源供应相关问题的理解并做出改进的决策。 这些数据可以通过 Web 应用程序直接访问,也可以…...
Docker | centos7上对docker进行安装和配置
安装docker docker配置条件安装地址安装步骤2. 卸载旧版本3. yum 安装gcc相关4. 安装需要的软件包5. 设置stable镜像仓库6. 更新yum软件包索引7. 安装docker引擎8. 启动测试9. 测试补充:设置国内docker仓库镜像 10. 卸载 centos7安装docker https://docs.docker.com…...
React--》掌握Valtio让状态管理变得轻松优雅
Valtio采用了代理模式,使状态管理变得更加直观和易于使用,同时能够与React等框架无缝集成,本文将深入探讨Valtio的核心概念、使用场景以及其在提升应用性能中的重要作用,帮助你掌握这一强大工具,从而提升开发效率和用户…...
python爬虫百度图片
直接给代码,可直接用,个人需要修改的地方有两处: self.directory 这是本地存储地址,修改为自己电脑的地址,另外,**{}**不要删spider.json_count 10 这是下载的图像组数,一组有30张图像&#x…...
前端开发:Vue中数据绑定原理
Vue 中最大的一个特征就是数据的双向绑定,而这种双向绑定的形式,一方面表现在元数据与衍生数据之间的响应,另一方面表现在元数据与视图之间的响应,而这些响应的实现方式,依赖的是数据链,因此,要…...
CTF-RE 从0到N: TEA
TEA TEA(Tiny Encryption Algorithm,轻量加密算法) 是一种简单、快速的对称加密算法。它是一个分组加密算法,通常用于加密 64 位的数据块,并使用 128 位的密钥。TEA 是一种“费斯妥结构”(Feistel structu…...
python 使用PIL获取图片长宽
在Python中,你可以使用Pillow库(PIL的一个分支和替代品)来获取图片的长和宽。Pillow提供了丰富的图像处理功能,包括获取图像的基本属性,如尺寸。 以下是一个简单的示例,展示了如何使用Pillow库来获取图片的…...
【Nas】X-DOC:搞机之PVE部署All In One(黑群晖NAS 软路由OpenWrt Docker Win10远程桌面)
【Nas】X-DOC:搞机之PVE部署All In One(黑群晖NAS & 软路由OpenWrt & Docker & Win10远程桌面) 1、原硬件配置清单:2、改AIO后增加配置清单:3、虚拟化平台PVE:4、搭建的关键服务: 1…...
linux 驱动源码分析的理解。
首先 , 是linux 驱动,我看网上的老师,在分析源码时 , 不会 所有的函数都分析,而是分析一些比较重要的函数,一些厉害的人,在分析源码时…...
鸿蒙-任务栏右击退出 或 UIAbility窗口关闭,怎么弹框拦截
onPrepareToTerminate 需要配置权限 ohos.permission.PREPARE_APP_TERMINATE 参考链接:文档中心import { emitter } from kit.BasicServicesKit; import { common } from kit.AbilityKit; import { TipsDialog } from kit.ArkUI;// entryAbility.ets 在你的uiabilit…...
【C++进阶篇】——STL的简介
【C进阶篇】——STL的简介 1.什么是STL STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。 2.STL的版本 原始版本 Alexander Stepanov、Meng Lee 在…...
信息安全工程师(70)网络攻击陷阱技术与应用
前言 网络攻击陷阱技术是一种主动的防御方法,作为网络安全的重要策略和技术手段,有利于网络安全管理者获得信息优势。 一、网络攻击陷阱技术原理 网络攻击陷阱技术可以消耗攻击者所拥有的资源,加重攻击者的工作量,迷惑攻击者&…...
Web保存状态的手段(Session的使用)
一,JSP中的page指令 1. <% page language“java” session“true”%> session:此页面是否使用session,默认值为true 二,使用Session完善之前的登录程序 1. 如何禁止直接输入URL地址进入登录功能的欢迎界面? …...
第五十四章 安全元素的详细信息 - DerivedKeyToken 详情
文章目录 第五十四章 安全元素的详细信息 - <DerivedKeyToken> 详情详情消息中的位置 第五十四章 安全元素的详细信息 - 详情 <DerivedKeyToken> 的目的是携带发送者和接收者可以独立使用的信息来生成相同的对称密钥。这些方可以使用该对称密钥对 SOAP 消息的相关…...
【独家首发】Midjourney针孔相机风格参数白皮书:基于1,842张生成图像的光学畸变量化分析(含f/1.4–f/16等效光圈映射表)
更多请点击: https://intelliparadigm.com 第一章:Midjourney针孔相机风格的光学本质与范式演进 光学原理的数字复现 针孔成像(Pinhole Camera)的本质在于无透镜、小孔衍射与直线传播的几何约束。Midjourney 通过扩散模型隐式建…...
caj2pdf深度解析:如何将中国知网CAJ文件转换为可搜索PDF的完整技术指南
caj2pdf深度解析:如何将中国知网CAJ文件转换为可搜索PDF的完整技术指南 【免费下载链接】caj2pdf Convert CAJ (China Academic Journals) files to PDF. 转换中国知网 CAJ 格式文献为 PDF。佛系转换,成功与否,皆是玄学。 项目地址: https:…...
仅0.3%用户掌握的胶片叙事技巧:用Midjourney实现“过期胶卷”时间衰减效果(含Exif元数据欺骗指令集)
更多请点击: https://intelliparadigm.com 第一章:胶片叙事与数字时代的时间诗学 胶片影像的物理性——帧率、显影时长、机械快门延时——曾将时间锚定为可触摸的物质存在;而数字媒介则以纳秒级采样、无损复制与非线性剪辑,将时间…...
可穿戴智能服饰制作:NeoPixel灯带与Circuit Playground的集成实践
1. 项目概述:当可穿戴电子遇上创意服饰如果你和我一样,既着迷于微控制器上跑起的第一行代码,又无法抗拒布料、针线和那些闪闪发光的小玩意儿,那么这个项目就是为你准备的。将NeoPixel灯带和Circuit Playground微控制器“缝”进一件…...
书成紫微动,律定凤凰驯:一破一立,铁哥的两部作品如何构成完整的文化闭环
书成紫微动,律定凤凰驯。 —— 唐《开元占经》卷一〇三 引言:千年谶语里的文明算法 无破则旧局不死,无立则新局不生。 一句千古古句,藏着文明迭代最严谨的底层逻辑: 先破后立,破立相生,方能形成…...
MongoDB 4.4+ 版本后,手把手教你搞定mongodump独立安装与配置(附环境变量设置)
MongoDB 4.4独立工具链部署指南:从零构建mongodump备份环境 当你在全新的Linux服务器上部署了MongoDB 4.4或更新版本,准备执行例行数据库备份时,在终端输入熟悉的mongodump命令却只得到command not found的响应——这不是你的操作失误&#…...
GPT-Image 2 视觉模型的逻辑跃迁:涌现还是幻觉?
GPT-Image 2 的“涌现能力”:视觉模型是否也会发生“逻辑跃迁”?(2026 深度观察与验证思路) 过去很长一段时间,大家谈“涌现(emergent)能力”,更偏向自然语言模型:从文本…...
demo-magic常见问题解决:pv工具安装和终端兼容性完全指南
demo-magic常见问题解决:pv工具安装和终端兼容性完全指南 【免费下载链接】demo-magic A handy shell script that enables you to write repeatable demos in a bash environment. 项目地址: https://gitcode.com/gh_mirrors/de/demo-magic demo-magic是一个…...
别再只盯着M.2了!手把手教你玩转Mini PCIe接口,给老旧笔记本/工控设备加装4G模块和固态硬盘
别再只盯着M.2了!手把手教你玩转Mini PCIe接口,给老旧笔记本/工控设备加装4G模块和固态硬盘 当大家都在追逐M.2 NVMe固态硬盘的速度时,一个被忽视的接口正在老旧设备里"沉睡"——那就是Mini PCIe。这个藏在笔记本电脑无线网卡下方或…...
图像质量评估新视角:抛开PSNR和SSIM,聊聊如何用‘变异系数’量化局部细节清晰度
图像质量评估新视角:用变异系数量化局部细节清晰度的实战指南 在数字图像处理领域,评估图像质量一直是核心挑战。传统指标如PSNR(峰值信噪比)和SSIM(结构相似性)虽然广泛应用,但面对复杂场景时往…...
