繁体   English   中英

为什么C ++ Boost发行版有`.dll`和`.lib`文件?

[英]Why does C++ Boost distribution have `.dll`and `.lib` files?

豪迪人。 我目前正在创建一个“共享”库(也就是Windows上的DLL),而后者依赖于“Boost C ++”库来获取日期时间功能。 我注意到我的Boost安装(通过Boostpro完成)在boost安装的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。

Boost的大多数部分只是标题,而其他一些部分(至少是文件系统和iostreams IIRC)需要链接库。 所以这一切都取决于你使用的Boost的哪些部分。 Boost Library Documentation页面中记录了哪些部分需要链接。

有些库使用自动链接。 这意味着头文件包含特定于编译器的代码,用于嵌入指令以将正确的库链接到目标文件中。 这是一个必须由编译器支持的有用功能。 gcc工具链(包括MingW)虽然不支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM