我已经为所有主要平台创建了一个 Unity 插件,但我遇到了在OpenCV 2411
Windows 10 上构建的 Windows 版本的问题。我将 an 传递cv:Mat Ptr()
给 a ID3D11Texture2D
,当系统上安装 opencv 时它工作得很好。
然后我开始删除指向 OpenCV 的所有环境变量,并将所有 dll 放入Plugins/x86_64
文件夹中,因为这是针对 64 位 Unity 编辑器的。我还重命名了我的 OpenCV 文件夹,这样任何指向它的路径都会被破坏。我想看看没有安装 OpenCV 的人会经历什么。当我点击播放时,一切都是灰色的,但没有 Dll 异常!所以我然后将我的 OpenCV 安装文件夹重命名为原来的名称,关闭并打开 unity,然后点击播放,它就可以工作了。统一加载 dll 后,您必须关闭并重新打开它才能查看更改。
是时候开始删除文件并查看哪些文件仍然依赖。我已将其缩小到一个文件,opencv_ffmpeg2411_64.dll
. 可以删除与 opencv 相关的所有其他文件,它将使用统一插件文件夹中的 dll 工作。 opencv_ffmpeg2411_64.dll
与其他 dll 位于同一文件夹中,但只有opencv_ffmpeg2411_64.dll
在c:\opencv\2411\...
关于为什么这个文件必须在原始安装目录中并在Plugins/x86_64
其他 opencv dll 所在的文件夹中被忽略的任何想法?
我已经阅读了所有与我能找到的主题相关的网站。有些人建议使用静态库,有些人有其他解决方案。我看到许多 opencv 插件使用 Dlls 而不是静态库,因为统一搜索库的顺序。
我非常接近,希望能轻推一下。我从来没有真正了解过 dll 依赖项。