Matlab 墨西哥 "Missing dependent shared libraries"

Matlab mex "Missing dependent shared libraries"

我在 Matlab 2017a 中创建了几个 mex 文件。当我用 Visual Studio C++ 2017 编译它们时,它们 运行 在我的电脑上运行良好。但是,当我尝试在另一台计算机上使用它们时,我收到一条错误消息

Error using mfss_mex.filter_uni
Invalid MEX-file  
'path_to_mex_file\mexfile.mexw64':
Missing dependent shared libraries:
'MSVCP140.dll' required by
'path_to_mex_file\mexfile.mexw64'
'VCRUNTIME140.dll' required by
'path_to_mex_file\mexfile.mexw64'

我想我可以通过在每台计算机上安装 Visual Studio 运行time 来解决这个问题,这将 运行 打开,但我想避免这种情况。有没有办法编译这些 mex 文件并避免使用 Visual Studio C++ 编译器的这些依赖项?

Mathworks solution 是在任何有此问题的计算机上安装 C++ 编译器运行时。

我发现我只需要将有问题的 .dll 文件(MSVCP140.dllVCRUNTIME140.dll)复制到与我的 .mexw64 文件和所有内容相同的文件夹中 运行没有问题。

我遇到了同样的问题。我通过 re-mex MATLAB 中的原始 .c 文件解决了它; 如果你有原始的.c文件,简单的方法是:

mex -setup
mex NAME.c

(这里的NAME代表你无效的.mexw64文件的名字) 在这种情况下,例如:

mex mexfile.c