我在Visual Studio C++(9.0版)中的项目中使用了Boost库(尤其是Boost文件系统)。此Boost库安装在C驱动器中。我的项目已经完成,因此,我有相应的Debug和Release。
现在,我想包括Boost文件系统的特定DLL进行调试和发布,所以我的第一个问题是我需要复制哪些DLL?它显示了文件系统的许多DLL。我尝试过的是"boost_filesystem-vc90-mt-1_40.dll"
和"boost_filesystem-vc90-mt-gd-1_40.dll"
。因为,我从“vc90”中得到一个想法,所以我认为这对Visual Studio 9.0意味着什么?
第二个问题,即使我不包括这些Boost文件系统DLL来进行调试或发布,我的项目EXE文件仍在工作吗?谁能解释为什么会这样吗?我试图检查我的环境变量中是否有Boost Library路径,但是很遗憾,我在那里找不到它们。非常感谢。
附注:我是C++和Boost的初学者。而且,我正在使用的另一个库是OpenCV,我已经为其复制了相应的DLL(核心,highgui和imgproc)到Debug and Release,并且该库运行良好。
最佳答案
您有2个选择:
一种。与您的二进制文件一起部署Boost DLL。回答您的问题-当然,如果您的项目依赖Boost,那么运行时就需要这些库,没有它们,二进制文件就不会启动。
如果部署项目的发布配置,则需要boost_filesystem-vc90-mt-1_40.dll
库。通常,您可以使用Dependency Walker
工具查看二进制文件的所有依赖项。
b。静态链接Boost库,在这种情况下,您的二进制文件不会对Boost DLL具有运行时依赖性,因此您不必部署它们