如果我只在使用Boost时使用头,那会静态链接它吗,还是根本不链接

If I use headers only while using Boost, will that link it statically, or is that not linking at all?

本文关键字:链接 静态 Boost 如果      更新时间:2023-10-16

我正在Windows/VisionStudioIDE中开发一个小的ATLDLL文件,而且我对C++/Boost还比较陌生。我在Linker选项下添加了Boost库目录,并将Boost根目录添加为额外的include目录。在我的代码中,我添加了如下内容:

#include <boost/algorithm/string.hpp>

这是静态链接、动态链接还是根本不链接?

这是静态链接、动态链接还是根本不链接?

答案是"视情况而定"。

提升幅度很大。从Douglas Adams那里偷一句话,Boost"很大。真的很大。你不会相信它有多大、多大、大得令人难以置信。"

Boost的某些部分纯粹是作为模板实现的:没有对以前编译并存储在某个库中的函数的调用。只使用Boost的这些部分,就不需要Boost库。

Boost的其他部分调用以前编译并存储在某个库中的函数。这些将需要链接。这是动态还是静态完成取决于(a)您(或某些系统管理员)是否将Boost库构建为动态库还是静态库,以及(b)您(或者您的生成文件)如何告诉链接器处理Boost库。

包含任何标头都会将该代码嵌入到源文件中进行编译。

因此,代码将被链接,就像所有符号一样,但它没有单独链接