Linux环境封装静态库

简介: Linux环境封装静态库

先解释 一下 编译静态库 跟 封装静态库的 区别,编译静态库 就是前文中的 把多个 .o 文件打包成一个 libxxx.a 静态库。

而 封装静态库 是已经有一个第三方的 静态库,我们想在 这个第三方静态库 上面再加一些功能,提供给客户使用。

还是以之前的 poseidon (波塞冬)项目为基础。现在又来了一位新大佬,hades (冥王),这位大佬除了 可以操作 3颗 星球之外,还可以控制世间万物的生死。

所以我们需要基于 libstart.a ,再加一些功能给 hades 用。相关文件我已经创建好了,下载 hades 即可,提取码:wfny 。



把 hades 放在 Document 目录下,如下图:

我新建了 两个 文件 dog.c 跟 pig.c ,冥王可以控制 猪 跟 狗死亡。

现在开始封装 新的静态库 libpower.a ,命令如下:

gcc -c -o dog.o dog.c
gcc -c -o pig.o pig.c
# 解压原来的静态库
ar -x libstar.a
ar -rcs libpower.a moon.o sun.o earth.o dog.o pig.o

编译新的静态库,需要先解压。用 objdump 查看一下 libpower.a 的内容:

objdump -d libpower.a > libpower.txt

实际上,就是解压之后,再打包,我们使用第三方项目的静态库的时候也可以这样,先解压,再打包我们自己的 .o 文件进去。


libpower.a 这个静态库的使用方法,也是跟之前类似的,可以把它放到 /usr/lib 下面,然后用以下命令编译:

sudo mv libpower.a /usr/lib
gcc -c -o hades.o hades.c
gcc -o hades hades.o -static -lpower

至此,封装第三方静态库的方法讲解完毕,实际上就是解压,然后再打包压缩。

如果你不解压,直接把 libstar.a 跟其他两个 .o 文件一起打包,会有问题。

目录
相关文章
|
2月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
234 11
|
4月前
|
存储 监控 Linux
Linux环境锁定关键文件防止误删操作流程。
总结以上内容,在Linux环境下锁定重要文档避免误删涉及到多种技术手段与策略组合运作, 包括但不限于利用chatter指挥官固化文档状态至只读模式、运作ACL精准调整访问权利列表、编排自动化流程简
155 20
|
4月前
|
Linux
Linux环境下的UDEV机制及其与守护进程的关联
实际使用时管理员需要熟悉编写合适udev rules去满足特殊需求;同时也需要注意避免编写过度复杂导致无法预料结果rules.UDEVD虽然稳健但错误配置可能导致无法预料问题因此需谨慎处理相关配置工作.
159 16
|
4月前
|
存储 Linux
Linux环境下删除大文件后磁盘空间未释放问题诊断流程。
以上诊断流程涉及Linux底层机制与高级管理技能结合之处,并需要管理员根据实际环境灵活调整诊断策略与解决方案。
280 8
|
5月前
|
安全 应用服务中间件 网络安全
在Linux环境部署Flask应用并启用SSL/TLS安全协议
至此,你的Flask应用应该能够通过安全的HTTPS协议提供服务了。记得定期更新SSL证书,Certbot可以帮你自动更新证书。可以设定cronjob以实现这一点。
342 10
|
4月前
|
Ubuntu 安全 Linux
Ubuntu 24.10 发行版登场:Linux 6.11 内核、GNOME 47 桌面环境
Ubuntu 24.10 还带来了 GNOME 47,增强了性能和稳定性,并引入了新功能。此版本的 Ubuntu 还默认在采用 Nvidia 显卡的硬件上切换到 Wayland,并在支持的硬件上默认使用开源的 Nvidia 560 内核模块。 另外需要注意的是,Ubuntu 24.10 是稳定版本,但作为非 LTS 版本,仅支持 9 个月。
|
4月前
|
安全 Linux 网络安全
Linux系统初步设置本地Git环境和生成SSH密钥的步骤。
现在您的Linux系统已经配置好了Git环境,并创建并添加了SSH密钥,可以安全地与远端仓库进行交互,无论是克隆、推送还是拉取操作。此过程确保了数据传输的安全并使版本控制流程更为顺畅。使用Git时应考虑定期更新并管理您的凭据,以确保安全性。
505 0
|
4月前
|
XML 缓存 Linux
在Linux环境下解决Visual Studio Code字体显示异常和字体替换方法。
解决Linux下VS Code字体显示异常,需要对Linux字体渲染机制有所理解,并对VS Code的配置选项进行合理设置。替换字体时则要通过系统字体配置或VS Code设置来完成。通过上述方法,可以有效地解决字体显示问题,从而提升代码编辑的视觉体验。
534 0
|
5月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
276 0