我正在尝试编译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版本。
答案 0 :(得分:3)
将cd
放入包含文件的目录中(假设它们都位于同一位置),或者在调用mex
函数时指定C ++文件的完整/相对路径
答案 1 :(得分:1)
尝试将addpath('C:\Users\craigim\Documents\Code\Matlab\Faddeeva-MATLAB\');
放入您的m文件中。 MATLAB使用的路径似乎是内部的,与您使用的操作系统无关。
您可能还必须将PATH环境变量设置为MATLAB中命令fullfile(matlabroot,'bin',computer('arch'))
返回的字符串。以下是有关为Windows和Mac or Linux
还有一个pretty good overview of building mex-files here,但我觉得基础知识无法回答你的问题。