如何部署boost库?

时间:2013-05-14 11:34:10

标签: c++ visual-studio-2008 opencv boost boost-filesystem

我在Visual Studio C ++(9.0版)中为我的项目使用了Boost库(特别是Boost文件系统)。此Boost库安装在C驱动器中。我的项目已经完成,因此,我有相应的Debug和Release。

现在,我想将Boost文件系统的特定DLL包含到Debug和Release中,所以我的第一个问题是我需要复制哪些DLL?它显示了许多文件系统的DLL。我尝试过的是"boost_filesystem-vc90-mt-1_40.dll""boost_filesystem-vc90-mt-gd-1_40.dll"。既然,我从“vc90”中得到了一个想法,我认为它对Visual Studio 9.0意味着什么?

第二个问题,即使我没有将这些Boost文件系统DLL包含到Debug或Release中,我项目的EXE文件仍在工作?任何人都可以解释为什么会发生这种情况?我试图在我的环境变量中以某种方式检查我是否有Boost Library路径,但遗憾的是我在那里找不到它们。非常感谢。

P.S。:我是C ++和Boost的初学者。而且,我正在使用的另一个库是OpenCV,为此我已经将相应的DLL(core,highgui和imgproc)复制到Debug和Release,这个工作正常。

1 个答案:

答案 0 :(得分:4)

您有两个选择:

一个。将Boost DLL与二进制文件一起部署。回答你的问题 - 当然如果你的项目依赖于Boost,那么在运行时需要库,没有它们就不能启动你的二进制文件。

如果部署项目的发布配置,则需要boost_filesystem-vc90-mt-1_40.dll库。通常,您可以使用Dependency Walker工具查看二进制文件的所有依赖项。

湾静态链接Boost库,在这种情况下,您的二进制文件不会对Boost DLL具有运行时依赖性,因此您不必部署它们