如果我在使用Boost时只使用标题,那么它是静态链接还是根本不链接?

问题描述 投票:0回答:2

我正在Windows / Visual Studio IDE中开发一个小的ATL DLL文件,而且我对C ++ / Boost相对较新。我在Linker选项下添加了Boost库目录,并添加了Boost根目录作为附加的include目录。在我的代码中我添加它像:

#include <boost/algorithm/string.hpp>

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

c++ boost static-linking
2个回答
3
投票

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

答案是“这取决于”。

提升很大。为了从道格拉斯·亚当斯那里偷走一条线,Boost“很大。真的很大。你只是不会相信这是多么巨大,巨大,令人难以置信的大。”

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

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


2
投票

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

因此,代码将被链接,因为所有符号都将被链接,但它不是单独链接的。

© www.soinside.com 2019 - 2024. All rights reserved.