在回答我最近的一个问题时,有人建议我在boost中使用一个函数来解决我的问题。这是我第一次使用boost,所以我添加了以下.hpp文件
#include <boost/algorithm/string.hpp>
和函数调用
boost::replace_all(marketPrices, "\\:", "-COLON-");
到我的源文件,然后运行make来正常使用g ++构建我的应用程序。
此时我意识到我没有在makefile中的链接步骤中添加任何新库,并完全期望链接步骤失败。令我惊讶的是,它并没有失败 - 不仅如此,而且代码完全按照应该没有任何投诉的方式运行。
令我惊讶的是至少可以说 - g ++是如何知道要链接的,为什么会自动这样做?或者我错过了一些与boost库运行方式相关的基础知识?我知道boost使用了大量的模板,这是我不太熟悉的C ++的一个方面,所以我想知道这是否与我所看到的有关。
答案 0 :(得分:7)
某些boost库是仅限标头,这意味着没有要链接的二进制文件。其他库如boost::thread
将要求您向链接器添加新的库。