我将解释一个成功的MATLAB mex教程示例 . 在我的主目录中,我有一个c文件“/home/yprime.c” . 我想创建MATLAB可执行(mex)文件(或.mex64格式) . 此示例仅需要MATLAB库并包含目录 . MATLAB知道它们的位置,下面的语句在主目录中成功返回一个mex文件(.mex64格式) .

>> mex yprime.c

现在,我将解释我更复杂但实际的问题 . 在我的主目录中,我有一个cpp文件“/home/example.cpp” . 这个文件需要Python包含目录(用于头文件),我将使用 –I 选项 . 不幸的是,这个目录位于根分支上(即/ root / directory / Python / lib) .

以下语句从我的/ home目录执行 . 下面的语句返回它无法找到python标头并失败 .

>> mex example.cpp –I/directory/Python/include

以下语句从我的根目录执行 . 下面的语句返回它无法将example.o(目标文件)写入根目录,因为我没有权限 .

>> mex /home/example.cpp –I/directory/Python/include

Is there a way to change where MATLAB is building the object file?

添加到MATLAB的路径并给出python包含目录的相对路径不成功 .