3

我在 Visual Studio C++(9.0 版本)中为我的项目使用了 Boost 库(尤其是 Boost 文件系统)。这个 Boost 库安装在 C 盘。我的项目已经完成,因此,我有相应的Debug和Release。

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

第二个问题,即使我没有将这些 Boost 文件系统 DLL 包含在调试或发布中,我的项目的 EXE 文件仍然可以工作吗?谁能解释为什么会这样?我试图检查我的环境变量中是否有 Boost Library 路径,但不幸的是我在那里找不到它们。非常感谢。

PS:我是 C++ 和 Boost 的初学者。而且,我正在使用的另一个库是 OpenCV,我已经将相应的 DLL(核心、highgui 和 imgproc)复制到调试和发布,并且这个库运行良好。

4

1 回答 1

4

您有 2 个选项:

一个。将 Boost DLL 与您的二进制文件一起部署。回答您的问题 - 当然,如果您的项目依赖于 Boost,则在运行时需要这些库,如果没有它们,您的二进制文件将无法启动。

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

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

于 2013-05-14T11:37:05.323 回答