c++ - Visual C++ 9.0 (2008) 静态库 + Boost 库 = 大型 .lib 文件

标签 c++ visual-c++ boost linker static-libraries

我有一个 Visual Studio 2008 C++ 项目,它输出一个静态库并使用 Boost 库的一些功能。当我在调试配置中构建项目时,.lib 文件为 7.84 MB。当我在发布配置中构建项目时,.lib 文件为 23.5 MB。 !!!!

我包含的唯一 Boost header 是:

  • boost/function.hpp
  • boost/exception/all.hpp

因为这是一个静态库,我没有指定要包含的任何 Boost 库文件,但不知何故它是一个巨大的输出。当我在测试可执行文件中使用该静态库时,生成的 .exe 文件在调试中仅为 746 KB,在发布中仅为 231 KB。

问题是我必须创建库的“发布版”以 checkin 不同的存储库以供其他项目使用。而且我不想每次更新时都必须添加 30 MB 的文件。如果没有别的,我真的很困惑为什么发布版本的大小是调试版本的 3 倍。

有人对我做错了什么有建议吗?

谢谢, 马特

最佳答案

项目 + 属性、C/C++、优化、整个程序优化 = 否。这至少应该防止您的发布构建大小爆炸。我无法重现调试库的大小,只有 header 给我一个 111KB 的 .lib。

关于c++ - Visual C++ 9.0 (2008) 静态库 + Boost 库 = 大型 .lib 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2472568/

相关文章:

c++ - 为什么即使在 'ss.fail()' 为真(这里 'ss' 是一个 stringstream 对象)之后循环也不终止?

c++ - 错误 LNK2020 : unresolved token (0A000015) IID_IPropertySetStorage

c - 我应该在 MSVC - C 上使用安全版本的 POSIX 函数吗

c++ - Win32 C++ 中的 DrawText 内存使用量增加

c++ - 最快的 stride-3 收集指令序列是什么?

c++ - 为什么我的 "Fish"挑战的 C++ 解决方案会失败?

c - g++-4.6.real : error: unrecognized option '-R'

c++ - 我们可以为boost库中的每个线程创建单独的日志文件吗

c++ - 如何在响应式 QVBoxLayout 中获取 QWidget 的当前宽度?

c++ - 与/bigobj 链接时间过长