【发布时间】:2020-11-24 10:58:39
【问题描述】:
我有 2 个用于 MS Visual Studio 的 OpenCV 4.3 版本。第一个是来自 GitHub 的预构建版本,第二个是我使用 CUDA 支持构建的版本。他们自己工作没有问题。我已将两个构建的 /bin/ 文件夹添加到 PATH。问题是 both 构建都有名为 opencv_world430.lib 的 lib 文件,并且将此文件添加到 'Linker' -> 'Input' -> 'Additional Dependencies' 会导致链接器找不到我想要的 DLL但是 PATH 列表中 upper 文件夹中的 DLL。
我的意思是,当我使用 非 CUDA 构建 创建项目时(将 include 和 lib 目录正确添加到 VC++ 目录),与 CUDA 的 DLL 被链接 因为它的文件路径比我想要的位置高。
解决方案可能只是在我使用 PATH 时交换它们的位置,但我想问是否有更简单的方法来处理这个问题。
另外:我在 Windows 10 上使用 VS2019。
【问题讨论】:
-
也许在项目文件中搜索并替换它的xml。确保在修改之前将其签入到版本控制中。
-
对于 dll 路径问题,请编辑 windows PATH 环境变量中各项的顺序。
-
@drescherjm 我试过了,但是我必须编辑 PATH 变量的顺序,并在我想运行其他版本时重新启动 Visual Studio。由于一个版本支持 CUDA,它会大量加载 Nvidia Toolkit DLL,从而导致执行时间更长。我想将必要的 DLL 复制到解决方案文件夹可能是一个解决方案,但我想知道是否可以告诉程序在 Visual Studio 中查找 DLL 的位置。
-
在 Visual Studio IDE 中,您可以为您拥有的每个项目独立地在调试设置上设置 PATH 环境变量。
标签: c++ visual-studio opencv dll path