首页/新闻资讯/正文详情

【2015-04-14】Linux下编译和使用动态库和静态库

发布时间:2026/9/25 16:43:07 来源:云帆数科 栏目:资讯中心
【2015-04-14】Linux下编译和使用动态库和静态库
[历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2015-04-14 标题Linux下编译和使用动态库和静态库分类编程 / C C 标签linux·动态库·静态库Linux下编译和使用动态库和静态库functions.h:functions.c:hellofunc.c:动态库静态库参考网址这里笔记一个非常简单的例子来介绍下如何在linux下编译和使用动态库。首先建立3个文件【 functions.c functions.h hellofunc.c 】内容如下functions.h:#ifndefFUNCTIONS_H_#defineFUNCTIONS_H_intadd(inta,intb);#endif/* FUNCTIONS_H_ */functions.c:#includefunctions.hintadd(inta,intb){returnab;}hellofunc.c:#includestdio.h#includefunctions.hintmain(void){inta10;intb20;intcadd(a,b);printf(%d add%d is%d ,a,b,c);return0;}动态库这里我们将functions.c编译成动态库输入命令$ gcc functions.c-fPIC-shared-olibfunc.so然后我们编译hellofunc.c并且链接刚刚编译好的动态库输入命令$ gcc hellofunc.c -L.-lfunc-ohellofunc成功后我们用ldd看下$ ldd hellofunc linux-vdso.so.1(0x00007ffc8de96000)libfunc.sonot found libc.so.6/lib/x86_64-linux-gnu/libc.so.6(0x00007f119dea8000)/lib64/ld-linux-x86-64.so.2(0x00007f119e28d000)可以发现这里动态库没有找到有两种方式可以解决第一种是用root权限把刚刚编译好的linfunc.so拷贝到/usr/lib目录下然后执行ldconfig这样的效果是永久的。第二种是修改下LD_LIBRARY_PATH变量这种方式不需要root权限而且效果时临时的。我们这里使用第二种方式输入命令将本地路径添加到LD_LIBRARY_PATH中$exportLD_LIBRARY_PATH.:$LD_LIBRARY_PATH再次执行ldd就可以发现动态库已经找到了。cstriker1407cstriker1407-x64:~/projects/HelloSo/src$ ldd hellofunc linux-vdso.so.1 (0x00007ffd893cc000) libfunc.so ./libfunc.so (0x00007f380ef98000) libc.so.6 /lib/x86_64-linux-gnu/libc.so.6 (0x00007f380ebb5000) /lib64/ld-linux-x86-64.so.2 (0x00007f380f19c000) cstriker1407cstriker1407-x64:~/projects/HelloSo/src$ ./hellofunc 10 add 20 is 30静态库编译出一个.o文件并将其打包成静态库$ gcc-cfunctions.c $ ar-rcslibfunc.a functions.o $lsfunctions.c functions.h functions.o hellofunc.c libfunc.a用静态库链接$ gcc hellofunc.c -L.-lfunc-static-ohellofunc2对比下文件大小并执行$du-chshellofunc* 12K hellofunc 860K hellofunc24.0K hellofunc.c 876K 总用量 $ ./hellofunc210add20is30参考网址【 http://blog.sina.com.cn/s/blog_54f82cc20101153x.html 】【 http://www.cppblog.com/deane/articles/165216.html 】

相关推荐

桂电校园网自动登录:基于CAS协议的HTTP自动化实践
桂电校园网自动登录:基于CAS协议的HTTP自动化实践

1. 这不是“破解”,而是校园网环境下一次标准的HTTP协议级自动化实践桂林电子科技大学的校园网认证系统,本质上是一套基于HTTP协议构建的Web身份验证服务。它不涉及任何加密隧道、代理中转或网络层劫持——所有交互都明文发生在应用层,完全遵… · 2026/9/25 16:43:07

【2015-04-27】Linux下使用JNI封装调用已经存在的动态静态库
【2015-04-27】Linux下使用JNI封装调用已经存在的动态静态库

[历史归档] 本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。 发布时间: 2015-04-27 | 标题:Linux下使用JNI封装调用已经存在的动态静态库 | 分类: 编程 / java / C &am… · 2026/9/25 16:43:07

一万次黑盒调用反推Jev架构:限流、截断与多引擎实测解析
一万次黑盒调用反推Jev架构:限流、截断与多引擎实测解析

一万次黑盒调用攒下的数据,比官方文档诚实得多。Jev 这个模型的文档写得干净,但从文档里你根本看不出它后面藏着什么。我花了三周时间,用脚本跑了整整一万次 API 调用,把时延、错误码、token 分布、上下文截断行为全记录了下来&am… · 2026/9/25 16:42:43

多智能体代码审查系统:提示词工程化与产线级AI协同实践
多智能体代码审查系统:提示词工程化与产线级AI协同实践

1. 项目概述:这不是一个“AI写代码”的故事,而是一场产线级代码审查范式的迁移最近在技术圈里反复被问到一个问题:“你们团队真把AI用进代码审查流程了?不是demo,是每天跑在CI/CD里的那种?”我每次回答都得… · 2026/9/25 17:14:19

广州建筑轮廓GIS数据清洗与坐标转换实战:从原始Shp到可用底图
广州建筑轮廓GIS数据清洗与坐标转换实战:从原始Shp到可用底图

简介:2022年广州建筑轮廓GIS数据是一份面向城市规划、建筑设计、土地利用与环境评估等专业场景的矢量地理信息资料,完整记录了广州区域内建筑物的精确几何形状、地理位置以及高度、用途、年代等属性信息,可供规划师、建筑师及研究人员在ArcGI… · 2026/9/25 17:14:19

ComfyUI宽高缩放全解析:两种高效方案告别尺寸焦虑
ComfyUI宽高缩放全解析:两种高效方案告别尺寸焦虑

1. 宽高缩放为什么是 ComfyUI 出图的第一道坎刚接触 ComfyUI 的人,十有八九会在出图尺寸上栽跟头。你满心欢喜地输入一段精心打磨的提示词,点了生成,结果要么是人物被拉成了面条,要么是画面边缘多出一截莫名其妙的重复内容&#x… · 2026/9/25 17:14:19

agentic-awesome-skills 中的 cmux 技能实战:macOS 终端多 AI Agent 编排与全拓扑控制指南
agentic-awesome-skills 中的 cmux 技能实战:macOS 终端多 AI Agent 编排与全拓扑控制指南

AI 技能AI 插件 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,445 agentic skills. Includes CLI, local MCP, catalog, … · 2026/9/25 17:13:24

靠谱的MES生产管理系统开发服务商,资质齐全不踩坑
靠谱的MES生产管理系统开发服务商,资质齐全不踩坑

江苏道源信息技术有限公司是深耕制造业数字化系统定制开发的本土科技企业,核心业务围绕企业数字化中台、全流程管理系统、管理系统定制开发,涵盖ERP、MES生产管理系统开发等全业务环节数字化解决方案,为制造、政务、服务业、产业园等多类客户… · 2026/9/25 17:13:24

Swift Package Registry 服务规范附录 B 深度解读:package release metadata JSON Schema 全解析
Swift Package Registry 服务规范附录 B 深度解读:package release metadata JSON Schema 全解析

开发工具构建工具 【免费下载链接】swift-package-manager The Package Manager for the Swift Programming Language 项目地址: https://gitcode.com/gh_mirrors/sw/swift-package-manager 点击查看 免费下载 在 SwiftPM 的包注册服务(Swift Package R… · 2026/9/25 17:13:18

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码