lib
目录中有一些DLL和LIB文件。好的,我认为有必要,所以我将它们添加到我的IDE中的库依赖项中。
现在我所做的是编写使用boost日期时间库的代码,创建一个共享库并从独立的可执行文件中使用它。它工作,即使我刚刚将我创建的共享库复制到可执行文件夹而不是boost_date_time-vc100-mt-1_47.dll
文件。奇怪。现在我要做的是从我的项目中删除Boost的DLL /库依赖项并构建共享库。它仍然有效。
我有点困惑。如果Boost库只是标题,为什么我的Boostpro安装有* .lib和* .dll文件用于datetime和其他boost部件?是否有任何我想要使用它们的场景,因为那些升级库无论如何都被编译到我的共享库中?
希望我很清楚,如果需要更多说明,请告诉我。还有FWIW,我正在使用Eclipse CDT + MingW。
答案 0 :(得分:4)
Boost的大多数部分仅是标题,而其他部分(至少是文件系统和iostreams IIRC)需要链接库。所以这一切都取决于你使用的Boost的哪些部分。 Boost Library Documentation页面上记录了哪些部分需要链接。
有些图书馆使用自动链接。这意味着头文件包含特定于编译器的代码,用于嵌入指令以将正确的库链接到目标文件中。这是一个必须由编译器支持的有用功能。 gcc工具链(包括MingW)虽然不支持。