c++动静编译的区别

Linux静态库与动态库 文章目录一、源代码的组织二、静态库三、动态库四、静态库与动态库的优缺点1、优点2、缺点五、动态库的优缺点1、优点2、缺点六、编译的优先级七、版权声明 一、源代码的组织 我们通常把公用的自定义函数和类从主程序中分离出来,函数和类的声明在头文件中,定义在程序文件中,主程序中要包含头文件,编译时要和程序文件一起编译。 示例(public.h) /* * 程序名:public.h,公共功能函数声明的头文... 阅读详情

动态编译和静态编译的区别

动态编译决定了在程序运行时才会连接库文件(需要部署的坏境安装对应库,程序体积小)
静态编译在编译时就连接好库文件了(所有库文件都打包进程序了,所以体积大,不过移植性好)

demo

静态编译
test.h

#ifndef _TEST_H_
#define _TEST_H_
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int add(int num1, int num2);
#endif //_RYAN_CONFIG_H_

test.cpp

#include "test.h"
int add(int num1, int num2)
{
	return num1+num2;
}

将之编译成静态库

g++ -c test.cpp 
ar crv libtest.a test.o 

使用静态库demo
server.cpp

#include <stdio.h>
#include <string>
#include <iostream>
#include "test.h"
int main()
{
	int a = 10;
	int b = 10;
	int c = add(10,10);
	printf("%d\n",c);
	return 0;
}

编译

g++ server.cpp -o server -ltest

请关注我的订阅号

订阅号.png

静态编译 vs 动态类型 本文将按时间顺序,详细介绍从 ES2016 到 ES2024 各个版本中引入的重要特性 阅读详情

相关推荐

C/C++静态库和动态库的编译

这是静态库和动态库的编译源码,附带有动态库和静态库的编译方法,如果有任何疑问,请留言

静态编译、动态编译、静态链接库和动态链接库理解

1.静态编译:编译器在编译可执行文件时,把需要用到的对应动态链接库(.so或.ilb)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行时不需要依赖于动态链接库. 2.动态编译: 动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一 方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只...

weixin_33712881的博客 1131

三菱 FX5U PLC 4轴程序 控制松下伺服3个, 步进电机一个

三菱 FX5U PLC 4轴程序。 控制松下伺服3个, 步进电机一个, 四轴自动堆垛码垛设备程序, 回原点动作用专用的原点回归指令写的, 手动运行用三菱相对定位指令写的 , 自动运行用绝对定位指令写的取料运行, 表格定位写的自动放料运行, 设备各种报警异常都有写出 程序每一步都有注释。 包括PLC程序、显控触摸屏 程序、松下伺服驱动器接线图。 程序内都有IO注释 编号:4816635519484681汇美0808 ...

m0_68069172的博客 3381

动态编译和静态编译的区别

一般来说,静态编译在某些特定情况下非常有用,例如创建可移植性很强的独立二进制文件,而动态编译则更适用于共享库和系统更新的情况。选择哪种编译方式取决于项目的需求和约束。动态编译和静态编译是两种不同的编译方式,它们影响了程序如何与库以及其他依赖项链接在一起。

bianchenggou_的博客 2772

NA400与昆仑通态MODBUS/TCP通讯调试说明

点击增加设备通道,弹出窗口进行设置,通道类型选择“0区输出继电器”,通道地址为1,通道个数为1,读写方式为读写。点击增加设备通道,弹出窗口进行设置,通道类型选择“4区输出寄存器”,数据类型选择“16位 无符号二进制”,通道地址为21001,通道个数为1,读写方式为读写。5.添加设备通道:双击莫迪康MODBUSTCP子设备,点击添加设备通道,根据Modbus规约地址表进行参数的设置,表格可在NAPro软件帮助中查看,如下图所示。然后可以在设备通道调试数据中观察到Q1的值为1,NW1的值678,表示通讯成功。

weixin_44281509的博客 2490

基于立创开源ESP32步进电机驱动板硬件设计与优化实践

本文详细介绍了基于立创开源平台的ESP32步进电机驱动板硬件设计与优化实践。重点解析了ESP32-PICO-D4与A4950驱动芯片的选型搭配、电源电路噪声隔离、PCB布局布线技巧以及保护电路设计,为开发者提供了从原理图到PCB的完整优化方案,有效提升驱动板的性能与稳定性。

7z8x2c4v6b9的博客 645

静态编译与动态编译的区别

静态编译与动态编译的区别   动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。   静态编译就是

wuan584974722的专栏 5万+

从‘包饺子’到‘包络线’:一个生活化比喻讲透长期与短期成本决策

本文通过饺子馆经营的生活化比喻,深入浅出地解析了长期与短期成本决策的核心逻辑。从调整人力(可变成本)到扩建厨房(固定成本),揭示了包络线理论在商业决策中的实际应用,帮助企业主在规模经济与成本控制间找到平衡点。

weixin_32006655的博客 338

GCC编译过程和Linux的动静态库

因为在Windows下安装了vs这样的集成环境,Linux下安装了gcc这样的编译器,基于这样的环境我们才可以进行编译,编译型语言:安装开发包一定是下载安装的头文件和库文件。

qq_73752525的博客 950

18、Excel VBA编程:自定义函数创建与代码调试全攻略

本文详细介绍了Excel VBA中自定义函数的创建方法,以获取单元格注释为例演示了完整开发流程,并深入讲解了代码调试的重要性与核心工具。内容涵盖三种主要错误类型及其应对策略,系统介绍了调试工具栏、断点、逐行执行、Locals窗口、Immediate窗口等实用功能。通过综合案例展示了如何运用调试技术解决实际问题,并总结了提前规划、逐步测试、日志记录等最佳实践,帮助读者提升VBA编程效率与代码质量。

life6的博客 100

【AI理论学习】手把手推导扩散模型:Diffusion Models(DDPM)

生成扩散模型DDPM如下图所示分为前向、逆向两个过程,它首先通过不断往原始清晰数据中添加噪声使其变成标准高斯噪声(前向过程),而后期望从标准高斯噪声中还原原始数据(逆向过程)。若能实现,那便可从已知的标准高斯分布中采样一个噪声数据,而后利用DDPM模型生成符合原始数据分布的新数据。 Diffusion模型包含两个过程:数学符号:y∝xy\propto xy∝x:y正比于x,即y随着x增大而线性增大。 条件概率:贝叶斯公式:p(A∣B)=p(B∣A)×p(A)p(B)p(A|B)=\frac{p(B|A)\

小哲的博客 1508

动态链接库——深入探讨C++程序中.so技术细节和实现方式及C程序中动静态库的区别(+工程分步骤编译库)

在开发中,动态链接库(DLL)和共享对象(Shared Object).so文件的使用成为提升程序灵活性和重用性的关键手段。如下相关工具,一种用于创建可移植共享库的工具。关于动态链接器的更多信息。一个跨平台的构建系统,简化了共享库的管理和构建。无论是提升程序的模块化程度,还是优化资源使用,动态链接都是一种强大的技术手段。

weixin_56228133的博客 1602

【图像拼接(Image Stitching)】关于【图像拼接论文精读】专栏的相关说明,包含专栏使用方法、阅读顺序、创新思路、文章汇总、源码汇总、数据集汇总等。总之,【图像拼接论文相关】看这一篇就够了

为什么会有这篇文章?因为专栏简介里写不下太多东西,只能通过这篇文章和大家交流,算是一个专栏阅读指南吧。说点心里话本来吧,我只想用优快云来记录自己学习【图像拼接】领域论文的过程,对每篇文章有个细致的理解,方便自己反复查阅。设置为付费也是因为涉及论文和本人其他项目需要,防止查重和其他问题,所以价格最开始设置的是专栏付费价格里最高的。起初,确实没有人看,一切也都平淡地度过着。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 4万+

【Linux开发工具】C/C++ 在Linux下的编译器-gcc/g++

学习了vim的使用方法后,我们就可以高效编辑文本文件了,但vim并不像vs一样编辑好.c文件后就可以直接编译运行,在Linux中运行代码需要使用工具:gcc/g++本文着重讲解gcc/g++的使用和程序翻译需要进行的四个阶段:预处理、编译、汇编、链接对应的指令和生成的文件,最后讲解动静态库的区别和联系。

2301_80555259的博客 1108

九天揽月带你玩转Ardupilot 的EKF2纸老虎(1)

目录 目录 摘要 1.kalman基础知识储备 摘要 本文主要记录自己学习ardupilot的ekf2代码的过程,相信很多人想移植或者学习ekf2,看到眼花缭乱的代码无从下手。九天揽月将带你玩转Ardupilot 的EKF2纸老虎 1.kalman基础知识储备 (1)先来看下最基础也是最重要的线性kalman 总结:不要害怕kalman,只要你可以懂得线性kal...

陌城烟雨 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Linux中的基本工具(gcc,动静态库的概念)

Linux的基本工具(gcc的使用,动静态库的概念)

tutou666的博客 965

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Linux编译器——gcc/g++使用

Linux编译器——gcc/g++使用

m0_56069910的博客 4542

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【Linux】Linux下的gcc/g++编译器与动静态库

1.可以看到,其实对于从网吧中拿来的电脑,就是库中的那个函数,也就是将库中的整个函数直接放到你的程序中来,这样你完全不需要再到库中去调用函数了,直接在你的程序中使用即可。那这么来说你的学长就相当于是一个链接器,网吧就是一个动态库,你知道了动态库中所需要的这个函数的地址,然后你就顺藤摸瓜🍈地找到了这个地方,你的学长就做了一个链接的功能。3.但是你怎么知道这个库函数在哪里的呢?2.当你的同学去到黑网吧,然后得知被封了之后无奈返回后,这个时候你有这自己的电脑,完全不需要再去考虑是否有电脑可用的安全性了,

apple_61439616的博客 1952

Linux——简单认识vim、gcc以及make/Makefile

Linux——简单认识vim、gcc以及make/Makefile

m0_51952310的博客 1160

【linux基础(六)】Linux中的开发工具(中)--gcc/g++

本篇文章主要讲解了Linux开发工具gcc/g++的使用方式以及停留在程序翻译的四个阶段对应的指令,动静态库讲解,动静态库的区别和优缺点讲解,以及计算机语言的历史发展和C语言翻译过程的联系

杭电码农-NEO的博客 2821

【Linux】Linux 操作系统 - 06 , 带你深入理解 gcc /g++ 原理 ! 超全 !

本篇将会将以下内容 , 初识 gcc / g++ , gcc 是怎么进行编译的? 进行了哪些过程?

思而不止 , 学而前行 ! 413

【Linux基础六】Linux开发工具—中(gcc和g++)

Linux系统不看分文件后缀,不代表linux下的各种程序不看而gcc和g++就是看后缀的gcc:C语言编译器,只能编译C语言g++:C++编译器,C/C++都能编译gcc test . c - o 程序名gcc test。c -std=99。

2201_75570391的博客 1038

动静态库的制作

动静态库的制作

weixin_52545652的博客 253

Linux环境开发工具之gcc/g++

gcc/g++的使用和程序的翻译过程

cp 1613

Linux工具

Linux工具-- yum vim

lzf的博客 754

Linux之动态/静态库

今天讲一下关于动静态库的生成和使用: 编写简单的加减乘除运算函数并打包成动/静态库,并分别使用 我将加减生成的是静态库,乘除生成的是动态库。 c/c++程序编译的过程: 1.预处理 :展开头文件,宏定义,条件编译处理等。通过gcc -E source.c -o source.i 2.编译:这里是一个狭义编译意义,指的是将预处理后的文件翻译成汇编代码的过程。通过gcc -S source.i生成,默...

Python_programer的博客 535
上一篇: 性能排错
下一篇: 关于c++的一些知识点
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值