打包 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:MGDLLMyDll.sln
上有我的Visual Studio解决方案。
但是,为了在另一台计算机上使用它,我将无法安装OpenCV
所以我必须找到如何打包OpenCV
库以使用我的.dll
文件分发正确的文件。也许我只需要将OpenCV
的.dll
文件复制到我的DLL的同一文件夹中?
我不知道如何处理这个问题,因为在互联网上我看到有些人在谈论例如CMake
,其他人包括项目中的一些文件,......
此外,我尝试使用一个软件来模拟这一点,我可以在其中添加一个使用我的C++ DLL 的 C# 插件。在这种情况下,我重命名OpenCV
文件夹以确保与此文件夹的链接已断开。如果我复制OpenCV
的.dll
文件,重命名OpenCV
的安装文件夹后,插件不再起作用。
提前感谢您分享您的经验/知识;)
您需要做的就是将所需的 OpenCV DLL 文件复制到您的可执行文件中
也许我只是必须将OpenCV的.dll文件复制到DLL的同一文件夹中?
是的,这正是您需要做的。您甚至可以在开发环境中检查要链接到哪些 DLL,这些 DLL 是要复制的 DLL
如何在Visual Studio 2010中部署基于OpenCV的独立项目?
我解决了我的问题。
复制.dll
文件是不够的。我需要将我的 DLL 与软件一起使用的文件夹添加到 PATH 环境变量中。
下一步,对我的 Python 程序做同样的事情,当我重命名安装文件夹时无法识别 openCV dll。
- 挂起和取消挂起一个文件DLL
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 导入库可以跨dll版本工作吗
- 从C++dll访问C#中的一行主要参数
- 链接到自行创建的dll失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- C++:将外部库链接到dll库
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 不同的Visual Studio版本中缺少.dll
- 从DLL中删除类的实例
- 如何包装第三方DLL在R中使用
- 使用c#访问c++dll中带有char*参数的函数时发生AccessViolationException
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 当我使用 C++ 中的 C# dll 来使用 Selenium 时,存在异常处理问题
- Python ctypes:不会按预期加载 dll
- 在 C++/CLI 中将 .NET 事件从一个 DLL 引发到另一个 DLL