基本概念:

什么是库:

在windows平台和linux平台下都大量存在着库。

本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。

静态库:在程序链接的时候使用,链接器会将程序中使用的函数代码从库文件中拷贝到应用程序中。

一旦链接完成,在执行程序的时候就不需要静态库了。

由于每个使用静态库的应用程序都需要拷贝所用函数的代码,所以静态链接的文件会比较大。

动态库(共享库):程序的链接时候并不像静态库那样在拷贝使用函数的代码,而只是作些标记。

然后在程序开始启动运行的时候,动态地加载所需模块。

所以,应用程序在运行的时候仍然需要共享库的支持。

WINDOWS:

在windows中,

静态库表现为.lib文件;

动态库表现为.dll文件,还有一个.lib文件包含被dll导出(使用__declspec(dllexport))的函数名称和位置等信息。.lib只在编译时需要,运行时不需要。

该伴生.lib文件在cmake中被称为ARCHIVE,需要注意的是Cmake生成动态库(shared)时,如果没有任何东西被__declspec(dllexport)导出将不会生成.lib文件。

LINUX:

在linux中,

静态库通常表现为.a文件;

动态库表现为.so文件;

总结:

发布类库通常以动态库(共享库)的形式发布,

在windows中、动态库发布项一般包括:

include:保存用到的头文件;

bin:保存.dll文件;

lib:保存动态库对应的.lib文件;

在linux中、动态库发布项一般包括:

include:保存用到的头文件;

lib:保存.so文件;

C/C++跨平台开发1-windows和linux中的类库的更多相关文章

  1. [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇]

    微软在千禧年推出 .NET战略,并在两年后推出第一个版本的.NET Framework和IDE(Visual Studio.NET 2002,后来改名为Visual Studio),如果你是一个资深的 ...

  2. [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [下篇]

    由于ASP.NET Core框架在本质上就是由服务器和中间件构建的消息处理管道,所以在它上面构建的应用开发框架都是建立在某种类型的中间件上,整个ASP.NET Core MVC开发框架就是建立在用来实 ...

  3. [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [中篇]

    我们在<上篇>利用dotnet new命令创建了一个简单的控制台程序,接下来我们将它改造成一个ASP.NET Core应用.一个ASP.NET Core应用构建在ASP.NET Core框 ...

  4. [转][ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [下篇]

    由于ASP.NET Core框架在本质上就是由服务器和中间件构建的消息处理管道,所以在它上面构建的应用开发框架都是建立在某种类型的中间件上,整个ASP.NET Core MVC开发框架就是建立在用来实 ...

  5. [转][ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇]

    微软在千禧年推出 .NET战略,并在两年后推出第一个版本的.NET Framework和IDE(Visual Studio.NET 2002,后来改名为Visual Studio),如果你是一个资深的 ...

  6. [转][ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [中篇]

    我们在<上篇>利用dotnet new命令创建了一个简单的控制台程序,接下来我们将它改造成一个ASP.NET Core应用.一个ASP.NET Core应用构建在ASP.NET Core框 ...

  7. windows和linux中搭建python集成开发环境IDE——如何设置多个python环境

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  8. 【转】windows和linux中搭建python集成开发环境IDE

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  9. 工具WinSCP:windows和Linux中进行文件传输

    工具WinSCP:windows和Linux中进行文件传输 2016-09-21 [转自]使用WinSCP软件在windows和Linux中进行文件传输 当我们的开发机是Windows,服务器是Lin ...

  10. windows与linux中的mysql配置主从

    最近在给学生讲解数据库的主从配置,由于学生电脑里面装的虚拟机是linux的,但是本机的系统是windows的,所以需要用windows中的mysql与linux中的mysql进行主从配置.下面说一下主 ...

随机推荐

  1. 中电金信:金Gien乐道 | 4月要闻速览,精彩再回顾

    ​ 中国电子党组副书记.总经理李立功一行调研中电金信 ​ 4月10日,中国电子党组副书记.总经理李立功一行赴中电金信进行调研,深入听取了中电金信经营发展情况.研发工作及"源启"行业 ...

  2. 浅谈 IoT 如何助力制造业企业实现数字化落地

    物联网作为新一代信息技术的重要组成部分,正在加速渗透到各行各业,成为经济社会数字化转型的关键支撑.根据中商产业研究院发布的<2022-2027 年中国物联网市场需求预测及发展趋势前瞻报告> ...

  3. Anaconda中的Spyder软件设置为中文教程

     Anaconda中的Spyder软件设置为中文教程 第一步:工具栏中Tools --> Preferences 第二步:第二栏的 Application--> 第二个选项卡Advance ...

  4. Qt编写物联网管理平台50-超强跨平台

    一.前言 跨平台的需求,除了是用户的需求外,也是为了适应日益增长的国产操作系统的发展的需要,当前国产操作系统发展的如火如荼,100%都是围绕linux系统展开,说的好听点就是站在巨人的肩膀上开发,不好 ...

  5. UML之修饰符

    1.可见性修饰符 面向对象思想中有一个重要概念是封装,封装意味着对象中成员的"可见性"是不同的.这里的对象通常指类和包,而它们的可见性通过可见性修饰符进行定义. 在UML中,类对象 ...

  6. 祝大家这周圣诞快乐!!本周进军多模态!😀From LLMs to MLLMs:😜Exploring the Landscape of Multimodal Jailbreaking

    从LLMs到MLLMs:探索多模态越狱攻击的前景 禁止盗用,侵权必究!!!欢迎大家积极举报 ①脆弱性代表:越狱攻击(恶意指令/训练&解码干预). ②最近的越狱攻击: 整体说:构建越来越复杂场景 ...

  7. Windows10 环境下使用 Cmake 和 MinGW-w64 编译安装 OpenCV 4.0.1

    Windows10 环境下使用 Cmake 和 MinGW-w64 编译安装 OpenCV 4.0.1 翻译 搜索 复制

  8. spark (四) RDD概念

    目录 1. RDD基本概念 1.1 弹性 1.2 分布式 1.3 数据集 1.4 数据抽象 1.5 不可变 1.6 可分区.并行计算 2. WordCount为例,看RDD特性 3. RDD的五大属性 ...

  9. SINE:上下文示例驱动,打造真正的通用分割模型 | NeurIPS'24

    来源:晓飞的算法工程笔记 公众号,转载请注明出处 论文: A Simple Image Segmentation Framework via In-Context Examples 论文地址:http ...

  10. Windows安全加固(一)

    目录: 1.在win ser2016中如何管理重命名administrator,禁用GUEST 2.禁用GUEST账户 3.系统不显示上次登录的账户名. 4.清理系统无效账户. 5.按用户类型分配账号 ...