致命错误LNK1168:无法打开filename.mexw64进行写入

Rod*_*iro 2 c++ matlab cuda mex visual-studio

我正在使用Visual Studio 2015编写c ++ / CUDA代码,以生成与MATLAB集成的mex文件。

当我通过MATLAB控制台运行mex文件,然后尝试在VS上再次对其进行编译时,出现此错误:

链接:致命错误LNK1168:无法打开filename.mexw64进行写入

  • 关闭MATLAB并再次打开程序即可解决该问题。

有谁知道不涉及关闭MATLAB的解决方案吗?

Cri*_*ngo 5

MEX文件是DLL(在Windows上是其他系统上的共享对象)。首次运行时,MATLAB会链接到它们,但不会取消链接,除非明确告知(或退出MATLAB)。

打字

clear mex
Run Code Online (Sandbox Code Playgroud)

在MATLAB中将取消链接所有MEX文件。请参阅相关文档

但是请注意,您的MEX文件可以调用mxLock,这将导致它被锁定在内存中,然后不会被清除clear mex。如果您在MEX文件中使用此功能,则需要包括一个调用MEX文件的功能mxUnlock。我通常添加一种语法,例如mymexfile --unlock:MEX文件检查是否用一个参数调用它,并且该参数是一个字符串,并且该字符串匹配“ --unlock”,然后调用mxUnlock