1

在回答我最近的一个问题时,有人建议我在 boost 中使用一个函数来解决我的问题。这是我第一次使用 boost,所以我添加了以下 .hpp 文件

#include <boost/algorithm/string.hpp>

和函数调用

boost::replace_all(marketPrices, "\\:", "-COLON-");

到我的源文件,然后运行 ​​make 以正常使用 g++ 构建我的应用程序。

在这一点上,我意识到我没有在我的 makefile 中的链接步骤中添加任何新库,并且完全预计链接步骤会失败。令我惊讶的是,它并没有失败——不仅如此,代码也完全按照它应该运行的方式运行,没有任何抱怨。

至少可以说这让我感到惊讶 - g++ 是如何知道要链接到什么的,为什么它会自动这样做?还是我错过了 boost 库运行方式的一些基本内容?我知道 boost 使用了很多模板,这是我不太熟悉的 C++ 的一个方面,所以我想知道这是否与我所看到的有关。

4

1 回答 1

7

一些 boost 库是仅标头的,这意味着没有要链接的二进制文件。像其他库这样的库boost::thread将要求您向链接器添加一个新库。

于 2012-07-10T21:20:15.407 回答