如果我只需要几个函数,是否值得包含一个大型C++库?

fee*_*ree 2 c++ dll shared-libraries

我有一个与C++静态库和动态库相关的问题.假设您现在正在开发一个程序,并且可以在C++库中找到一个功能.那么你有两个选择:一个是编写一些代码(假设不是太多)并重新实现该功能; 另一种是从C++库调用该函数.但是,您要使用的C++库是一个非常大的库,而您只使用库的一小部分.在这种情况下,什么是更好的选择?谢谢!

dwe*_*ves 6

  • 静态库链接只会将您的可执行文件与您有效使用的符号链接起来.假设你在lib中有200个函数并且只使用4个函数(包括lib的内部调用),那么只有你使用的4个符号将在可执行文件中链接.因此,与2Mb lib链接可能会导致您的可执行文件只添加20k.

  • Windows下的动态库应该是符号完整的,即,DLL只包含200个符号,而它只需要4.但它不会对您的可执行文件大小产生很大影响(因为用于链接DLL的lib只是一个符号转发器),它可能会影响加载时间和内存占用.