当前位置: 首页 > news >正文

静态库和动态库的创建

概念简要:

静态链接:在编译期将.a库中的代码直接打包到可执行文件,不依赖外部库,可独立运行
相当于程序在编译期就将静态库融入进可执行程序中

动态链接:在编译期间,只保留函数符号,相当于只有函数的声明;在运行期通过动态链接器(会加载函数具体的功能)加载 .so/.dll库,程序中只存在函数符号的引用,而非实际代码

创建静态库

这是main文件

#include <iostream>
#include "math.h"
int main()
{	int a,b;std::cin>>a>>b;int c = add(a,b);std::cout<<c<<"\n ";return 0;
}

这是math.h文件

#ifndef __MATH_H__
#define __MATH_H__
int add(int a,int b);#endif
这是函数的具体实现功能文件
#include "math.h"
int add(int a,int b)
{return a + b;
}

注意,此时为什么我们需要创建静态库,是因为我们不想让别人知道我们这个函数具体实现的代码,防止人家恶意篡改
所以我们需要创建静态文件
先把 math.cpp 文件 编译成 .o 文件,用g++ -c math.cpp math 命令你就可以看到该文件目录下有 math.o 文件了
再把 math.o 文件 通过 ar rcs libmath.a math.o 命令变成静态库的形式,由此我们的静态库就创建好了
这时候我们删掉原来的math.cpp文件,然后链接上我们的静态库即可,g++ main.cpp -L. -lmath
-L是文件路径,当前文件路径就是 .,后面再加上你想链接的库

http://www.jsqmd.com/news/312779/

相关文章:

  • 2026年1月geo公司效果增长实测推荐:企业营销计划提效手册
  • 2026年成都硕士留学中介诚信排名,如何选择可靠服务?
  • 2026年合肥留学机构排名,经验丰富机构全面解析
  • 2026年泉州留学机构十强解读,资质正规的重要性
  • 2026年废旧金属回收厂家参考指南:合规技术与区域服务实力解析
  • Java数据类型拓展
  • 完整教程:深入解剖 Redis Cluster:从 16384 分片原理到故障自动转移的硬核实战
  • 安徽阜阳点对点物流同城零担运输多少钱,服务好不
  • 剖析敦煌原生戈壁户外运动服务公司,选哪家更合适
  • Transformer 入门:一篇对初学者友好的深度解析
  • 广州市英语雅思培训机构推荐,2026权威测评出国雅思辅导机构口碑榜单推荐
  • idea+sprinboot+postgres创建WEB项目
  • 大面额天猫超市卡哪里回收更安心
  • 丽江市英语雅思培训辅导机构推荐-2026权威出国雅思课程中心学校口碑排行榜
  • USACO历年青铜组真题解析 | 2023年1月
  • 2025科技综述:指纹浏览器与国内IP适配的核心技术优化与实践
  • 2025 网安缺口 300 万!转行必看的真实职场全揭秘
  • 运维老哥熬的夜受的气,转网安全给你补回来!
  • 南昌英语雅思培训机构推荐|2026权威测评出国雅思辅导机构口碑榜单
  • 2026最新:西北专业废旧金属回收厂家权威推荐(合规企业精选)
  • 法式拼价格如何,优质供应商和来样定制推荐汇总
  • 2026年度途安星养车性价比排名,客户评价如何一看便知
  • 2026年比较好的国际物流企业推荐,华睿国际空运服务全球
  • 2026年红玺台英语班口碑好的机构排名,快来了解一下
  • 2026 英语雅思培训班课程机构排行榜:实测高分提分机构选择指南
  • 2026年靠谱的PCB废水第三方运营服务专业公司有哪些
  • 大模型训练全解析:从预训练到微调,一篇搞定收藏备用
  • 丽江市英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜
  • 收藏!什么是AI应用开发工程师?(大模型入门必看)
  • 标智客 AI Logo设计生成神器评测报告