Переглянути джерело

增加了动态库和静态库的优缺点

kanxingyu
DESKTOP-J5JP3RN\kanxingyu 6 дні тому
джерело
коміт
257984adc8
1 змінених файлів з 38 додано та 0 видалено
  1. +38
    -0
      Library/Library.md

+ 38
- 0
Library/Library.md Переглянути файл

@@ -11,6 +11,24 @@
- 对**运行时环境控制严格**的系统
- **性能敏感**且**无需热更新**的模块

**优点**

独立性:可执行文件包含所有依赖,无需外部库文件,部署简单。

性能:函数调用无额外开销(无动态链接加载过程)。

兼容性:避免版本冲突(如“DLL Hell”问题)。

代码优化:编译器可进行全程序优化(LTO)。

**缺点:**

体积大:相同库代码被多次复制到不同程序,占用磁盘/内存。

更新困难:库更新需重新编译所有依赖它的程序。

内存浪费:多个进程无法共享同一库的物理内存。

#### 1.2静态库的生成

第一,创建新项目,选择静态库。
@@ -49,6 +67,26 @@

动态库(Dynamic Link Library, DLL / Shared Object, SO)是一种**在程序运行时才被加载的代码库**,允许多个程序共享同一份内存中的库副本

**优点:**

节省资源:多个进程共享同一库,减少内存/磁盘占用。

更新灵活:更新库文件后,所有程序自动使用新版本(需兼容)。

模块化:支持插件机制(运行时加载)。

热修复:可替换库文件修复问题(无需重编译程序)。

**缺点:**

部署复杂:需确保目标系统存在正确版本的库(依赖管理)。

版本冲突:不同程序依赖同一库的不兼容版本(如DLL Hell)。

性能损耗:首次加载需地址重定位,轻微运行时开销。

安全性:恶意替换库文件可能导致安全隐患。

#### 2.2动态库的生成

##### 2.2.1通过导出语句生成


Завантаження…
Відмінити
Зберегти