c - 即使正在使用所有函数,库文件也比可执行文件大十倍
问题描述
我一直致力于制作一些库,并且我有一个测试系统,每个库我将有一个解决方案,一个项目构建库,另一个项目在 Visual Community 2019 中测试和执行。“ library tester”可执行文件测试并使用库中的所有函数以及其他代码来执行自己的执行,但即使在 Debug 构建中,可执行文件的物理大小也比库小 5-10 倍。据我了解,C 库包含符号定义,因此每当库测试器项目引用一个函数时,链接器基本上会将 .lib 代码复制到 .exe 中。如果我对这个过程的(松散的)理解是正确的,怎么可能所有的符号都被解析了,而.lib 却使.exe 相形见绌?
精确测量:
在调试版本上,exe 为 109KB,.lib 为 527KB。
在 Release 版本中,exe 为 30KB,.lib 为 2.9MB。
解决方案
推荐阅读
- c# - 警告 MSB3290:无法为类型库创建包装程序集
- postgresql - 当带有.Net Core的Postgres sql中的一个数据库中有多个模式可用时,如何仅为一个模式生成实体上下文?
- azure-data-factory - 如何在 Azure 数据工厂的 ForEach 活动中创建迭代范围变量
- python - “str”对象没有属性“fileno”
- python - Anaconda 安装问题
- python - 简单的包导入导致除以零警告
- pandas - 如何将大十进制数据从数据框保存到csv文件
- javascript - 如何重新渲染组件?反应原生
- node.js - nodejs mongodb 根据单个值检查范围
- laravel-livewire - 如何生成访问错误和错误消息,将用户留在页面上?