Visual studio 无效的MEX(找不到指定的过程):在visual studio中构建CUDA MEX函数并在MATLAB中调用它
我有一个以前使用VisualStudio2005SP1在32位WinXP中使用的(cuSVM项目)。我想在我的64位Win7中运行它。我使用VisualStudio2008以64位模式编译了它。但由于缺少一些DLL,它无法运行 我使用了“Dependency Walker”,缺少的dll是:Visual studio 无效的MEX(找不到指定的过程):在visual studio中构建CUDA MEX函数并在MATLAB中调用它,visual-studio,dll,cuda,32bit-64bit,mex,Visual Studio,Dll,Cuda,32bit 64bit,Mex,我有一个以前使用VisualStudio2005SP1在32位WinXP中使用的(cuSVM项目)。我想在我的64位Win7中运行它。我使用VisualStudio2008以64位模式编译了它。但由于缺少一些DLL,它无法运行 我使用了“Dependency Walker”,缺少的dll是: MSVCR80.DLL MSVCR90D.DLL IESHIMS.DLL 带有黄色问号,表示“系统无法找到指定的文件” 在DLL树中,我在“c:\windows\system32\NVCUDA.DLL”
- MSVCR80.DLL
- MSVCR90D.DLL
- IESHIMS.DLL
我对visual studio和dll文件有一点了解,因此我真的需要您的帮助。我发现该错误可能与缺少dll无关。MATLAB错误为“无效mex文件”。当错误消息为:“找不到指定的“模块”时,则缺少DLL是原因。但当错误消息为:“找不到指定的“过程”时,问题可能不同我发现错误可能与缺少dll无关。MATLAB错误为“无效mex文件”。当错误消息为:“找不到指定的“模块”时,则缺少DLL是原因。但是,当错误消息为:“找不到指定的“过程”时,问题可能不同我遇到了相同的问题。解决这个问题是一个奇怪的、难以理解的问题 转到项目>属性。选择配置属性>链接器>高级,如下图所示。然后,在显示“目标机器”的位置,将设置从“未设置”更改为MachineX64(/Machine:X64),再次如图所示。我花了一段时间才弄明白这一点,从那以后,我一直在从VisualStudio从头开始成功地编译mex+cuda文件。希望这也能为您解决这个问题
我也有同样的问题。解决这个问题是一个奇怪的、难以理解的问题 转到项目>属性。选择配置属性>链接器>高级,如下图所示。然后,在显示“目标机器”的位置,将设置从“未设置”更改为MachineX64(/Machine:X64),再次如图所示。我花了一段时间才弄明白这一点,从那以后,我一直在从VisualStudio从头开始成功地编译mex+cuda文件。希望这也能为您解决这个问题
您已经混合了来自不同版本Visual Studio的发布和调试DLL。确保所有内容都是在版本或调试中使用相同版本的VS构建的。这包括依赖项。您的意思是我必须使用visual studio 2005编译项目吗?如果我使用VisualStudio2008,我需要只存在于VisualStudio2005安装文件夹中的“MSVCR80.DLL”。为什么程序在visual studio 2008中编译时需要MSVCR80.DLL?我在我的计算机上搜索了“IESHIMS.DLL”,有不同大小的不同版本。我使用了位于“C:\Program Files\Internet Explorer”中的版本,这是真的吗?很可能您的项目所依赖的东西(您是否链接到某个东西?)是使用Visual Studio 2005构建的。这将创建对VS 2005相关DLL的依赖关系。确保您使用的所有东西(包括依赖项)都是使用相同的VS版本构建的。现在不要担心IESHIMS.DLL。Dependency Walker有时会给你错误的否定。快速查看一下这个项目,似乎有一个对Matlab库的依赖?它们是为哪个版本的Visual Studio编译的?您很可能会在Matlab的文档中找到这一点……您已经混合了来自不同版本Visual Studio的发布和调试DLL。确保所有内容都是在版本或调试中使用相同版本的VS构建的。这包括依赖项。您的意思是我必须使用visual studio 2005编译项目吗?如果我使用VisualStudio2008,我需要只存在于VisualStudio2005安装文件夹中的“MSVCR80.DLL”。为什么程序在visual studio 2008中编译时需要MSVCR80.DLL?我在我的计算机上搜索了“IESHIMS.DLL”,有不同大小的不同版本。我使用了位于“C:\Program Files\Internet Explorer”中的版本,这是真的吗?很可能您的项目所依赖的东西(您是否链接到某个东西?)是使用Visual Studio 2005构建的。这将创建对VS 2005相关DLL的依赖关系。确保您使用的所有东西(包括依赖项)都是使用相同的VS版本构建的。现在不要担心IESHIMS.DLL。Dependency Walker有时会给你错误的否定。快速查看一下这个项目,似乎有一个对Matlab库的依赖?它们是为哪个版本的Visual Studio编译的?您很可能会在Matlab的文档中找到这一点……非常感谢您的回答,但是