1

我正在尝试编译一个 C++ 函数(在此处找到)。我下载了必要的包,安装了 Microsoft Windows SDK 7.1,使用 将其链接到 MATLAB mex -setup,然后将函数包解压缩到我的 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,SDK 7.1 版本从 MATLAB List of supported compilers链接。

4

2 回答 2

3

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

于 2013-06-11T13:04:34.107 回答
1

尝试放入addpath('C:\Users\craigim\Documents\Code\Matlab\Faddeeva-MATLAB\');您的 m 文件。MATLAB 使用的路径似乎是内部的,并且独立于您的操作系统使用的任何内容。

关于 addpath 的文档在这里

和一个类似的讨论here

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

这里也有一个很好的关于构建 mex 文件的概述,尽管我觉得基础知识并不能回答你的问题。

于 2013-06-11T00:47:11.970 回答