Mex找不到文件,但“哪个”可以

时间:2013-06-11 00:33:25

标签: matlab mex

我正在尝试编译C ++函数(找到here)。我下载了必需的软件包,安装了Microsoft Windows SDK 7.1,使用mex -setup将其链接到MATLAB,然后将函数软件包解压缩到我的MATLAB路径中。

当我运行命令时:

mex -output Faddeeva_w -O Faddeeva_w_mex.cc Faddeeva.cc

我收到错误消息:

C:\PROGRA~1\MATLAB\R2013A\BIN\MEX.PL: Error: 'Faddeeva_w_mex.cc' not found. 

但如果我输入which Faddeeva_w_mex.cc,我会得到:

C:\Users\craigim\Documents\Code\Matlab\Faddeeva-MATLAB\Faddeeva_w_mex.cc

因此,MATLAB和which命令在查找文件时没有问题,但mex丢失了。这是我第一次尝试使用mex进行编译,所以我真的不知道从哪里开始。 mex是否有我必须设置的不同路径变量?

我在Windows 7 64位计算机上使用MATLAB 2013a,其中包含从MATLAB List of supported compilers链接的SDK 7.1版本。

2 个答案:

答案 0 :(得分:3)

cd放入包含文件的目录中(假设它们都位于同一位置),或者在调用mex函数时指定C ++文件的完整/相对路径

答案 1 :(得分:1)

尝试将addpath('C:\Users\craigim\Documents\Code\Matlab\Faddeeva-MATLAB\');放入您的m文件中。 MATLAB使用的路径似乎是内部的,与您使用的操作系统无关。

Documentation on addpath here

And a similar discussion here

您可能还必须将PATH环境变量设置为MATLAB中命令fullfile(matlabroot,'bin',computer('arch'))返回的字符串。以下是有关为WindowsMac or Linux

设置环境变量的一些说明

还有一个pretty good overview of building mex-files here,但我觉得基础知识无法回答你的问题。