解决Windows 10 ‘.\wsvd.mexw64‘ 无效: 找不到指定的模块问题

问题概述

  继上次试图使用mac跑APAP和AANAP,APAP成功跑通了…but 跑AANAP的时候出现了问题,因为无法调用vlfeat中的sift相关函数…看了很多网上的教程,感觉应该是我Xcode SDK版本不适配的问题或者还会有别的问题巴拉巴拉…也试着很多种调整方式,但还是failed,lei了…决定先在windows 10上搞一搞…
  于是我屁颠颠下好了matlab 2021a 参考 b站这个链接可以拥有破解版,然后开开心心地准备直接打开就跑APAP…but 问题又出现了…
在这里插入图片描述

开始寻找solution

啊这…??? 于是我找到 wsvd.mexw64 想看一看它能不能跑…嗯…不行…看到网上的解决方案说,重新编译一下也许能行?[这个]

于是我找到 .\mdlt\vlfeat-0.9.14\toolbox\vl_compile.m 试图重新编译…
在这里插入图片描述

编译指定模块或许可以参考[这个]

于是我去百度了一下 关于 找不到支持的编译器 的解决方案…[这个]
于是开始了尝试…突然发现我其实是没有Visual Studio的…据说这是个编译器…但咋用我不会啊…但其实我之前配C++环境的时候安装了 MinGW-w64 的呀… 现在开始怀疑是不是我把matlab装在D盘里的问题了…不过讲道理应该没毛病呀…环境变量我配置了呀…maybe没有链入matlab???
在这里插入图片描述
先找到我的mingw,然后再系统变量里加上它:
在这里插入图片描述
然后在matlab里运行 setenv('MW_MINGW64_LOC','C:\Program Files\mingw64')

再使用 mex -setup 查看是不是整好了…
在这里插入图片描述
好家伙哦…喜大普奔…竟然是因为 C++编译器没有链入进matlab (虽然我已经下了个visual studio准备用用看来着…)

此处在matlab安装mingw的参考链接,however,如博主所说…不受支持的版本问题出现了
在这里插入图片描述
呜呜呜 我哭了…出现warning也不能用…人生又重来了…
在终端中用gcc -v 看了一下…我之前装的mingw是 8.1.0 版本的…
在这里插入图片描述
再回到 mathworks官网要求的版本匹配…
在这里插入图片描述
好家伙…去吧皮卡丘…你的mingw需要降版本…降成6.3去吧…哭… 那我之前给VScode配的C++也要推倒重来了…

Maybe 最近的这一系列故事告诉我们…有些东西…你还是别安最新版本的好…


安装 6.3.0 MinGW

进入到 SourceForge 选择 MinGW-W64 Online Installer
在这里插入图片描述
设置环境变量:
在这里插入图片描述
注意:需要注意一下 mingw的安装路径 ,可以直接装在C盘下
在这里插入图片描述
去添加新的系统变量:
在这里插入图片描述
在matlab命令窗口中输入 setenv('MW_MINGW64_LOC','C:\mingw-w64\x86_64-6.3.0-win32-seh-rt_v5-rev2\mingw64')

使用 mex -setup :
在这里插入图片描述

再次重新执行vlfeat编译 vl_compile.m
在这里插入图片描述
成功啦!!!~

真滴超级感谢这个大哥的blog呢~~

或许还可以看看这个 [完美解决matlab“错误使用 mex未找到支持的编译器或 SDK。”的问题]…虽然我没用这个方式…


再次试图寻找solution

C/C++编译链入是链入了…可是并没有解决我最初的问题哇…??? 我本来以为解决了 高高兴兴准备跑APAP呢…but ???
在这里插入图片描述
原封不动的bug… 我的快乐啪嗒的一下就没有了…

是缺少 .dll 依赖的问题??? 就很奇怪,我的mac上都能跑…2020a它可以呀…2021a咋又不行了555

要不试试这个说法?,或者这个说法?

And this:[Matlab]Invalid mex-file 找不到指定的模块

啊啊啊啊…我检查了一下,发现该有的 .ddl 一个都不少哇,比如之前 msvcr.dll或者 vl.dll 在所有该有的win32、win64都有…
在这里插入图片描述
好家伙…差点就没辙了…??? 差点就要按照这个方法去重新生成.dll文件了…(我以为是缺失了啥别的.dll文件???不过这个 Dependency Walker 可能以后能用的到…(但并不希望用到hh) )

还有个百度回答说把matlab的路径加到环境变量和PATH中,俺也加了…但是不顶用哇…

于是…我决定重新看看这份源码…从里面自行找解决方案了…

前方高能

看到了这个!!!
在这里插入图片描述
好家伙,之前我重新链入了MinGW,也已经重新编译了vlfeat的那些库…但是…既然遵循 万物皆 重新编译 原则…

(确实经过编译之后,sift那个特征提取函数能用了hhh (这个之前在我mac上没有处理出来的问题…))

为什么不 重新编译一下 wsvd.cpp 呢???

于是我破罐子破摔…一条命令行猛如虎 mex wsvd.cpp 就冲了…

然后再跑 APAP …好家伙,它成功了!!~ 喜大普奔~~
在这里插入图片描述

所以…google出来的那些各种乱七八糟的解决方案都是些什么鬼??? 乱搞 呜呜呜… 自己动手丰衣足食… 我差点就要深入去了解 mex原理和.dll了…我敲… (属实浪费了我那么小半天…)

坚持就是胜利!!! 不会有解决不了的bug,如果有,一定是你还不够努力!!

我们来看一下效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Nismilesucc/article/details/121009804
今日推荐