打包 OpenCV Dll 以分发 C++ DLL

Package OpenCV Dll to distribute C++ DLL

我在 Visual Studio 2017 年使用 C 包装器在 C++ 中创建了一个 DLL,我正在使用 OpenCV 库。我在我的电脑上安装了OpenCV,在我的项目中添加了.lib.dll文件的路径,这样我就可以在其他程序中使用我的DLL了。准确地说,我现在在文件夹 C:\opencv\... 上有 OpenCV,在 C:\MG\DLL\MyDll.sln.

上有我的 visual studio 解决方案

但是,为了在另一台计算机上使用它,我将无法安装 OpenCV 所以我必须找到如何打包 OpenCV 库以分发正确的文件我的 .dll 文件。也许我必须将 OpenCV.dll 文件复制到我的 DLL 的同一文件夹中?

我不知道如何处理这个,因为在互联网上我看到一些人在谈论 CMake,其他人包括项目中的一些文件,...

此外,我尝试使用可以添加使用我的 C++ DLL 的 C# 插件的软件对此进行模拟。在本例中,我重命名了 OpenCV 文件夹,以确保包含此文件夹的 link 已损坏。如果我复制 OpenCV.dll 文件,重命名 OpenCV 的安装文件夹后,插件将不再起作用。

提前感谢您分享您的 experience/knowledge ;)

您需要做的就是将所需的 OpenCV DLL 文件复制到您的可执行文件夹中

Maybe I juste have to copy the .dll files of OpenCV in the same folder of my DLL ?

是的,这正是您需要做的。您甚至可以在您的开发环境中检查您链接到哪些 DLL,这些是要复制的

How to deploy a standalone project that is based on OpenCV in Visual Studio 2010?

我解决了我的问题。

复制 .dll 文件是不够的。 我需要将我的 DLL 与软件所在的文件夹添加到 PATH 环境变量。

下一步,对我的 Python 程序做同样的事情,当我重命名安装文件夹时无法识别 openCV dll。