我正在尝试在eclipse(linux)上编译c ++代码(包含mex函数,如:mxGetNumberOfElement,mxCreateDoubleScalar,mxArray等)。
我按照这个指示去了configure eclipse。
但不幸的是我遇到了这个错误:
function 'mxGetNumberOfElements' could not be resolved.
function 'mxGetNumberOfElements' could not be resolved.
function 'mxCreateDoubleScalar' could not be resolved.
....
我错过了什么?
如何配置Eclipse以识别此功能?
我的代码与Matlab示例中的代码非常相似:
arrayProduct.c
在"创建C源MEX-File"在此site。
我已经在Windows上的Visual Studio中编译了我的代码并且它工作正常, 但我需要在linux上工作。
感谢您的帮助。
答案 0 :(得分:0)
以下说明是此blog entry的冗长版本。
假设您的Matlab安装位于MATLABPATH
,以下步骤使您可以在Eclipse中编译MEX函数:
mexa64
。MATLABPATH/extern/include
。点击确定。mex
。mat
... mx
的最后一个。MATLABPATH/bin/glnxa64
。点击确定。完成。您现在可以在Eclipse中编译MEX文件。 以下代码应编译为MEX函数,该函数返回实数,标量,双输入值的根:
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
nlhs = 1;
mxArray* arg[1];
*arg = mxCreateDoubleMatrix(1,1,mxREAL);
mxSetPr(*arg,mxGetPr(*prhs));
mexCallMATLAB(1,plhs,1,arg,"sqrt");
}
编译的代码,即MEX函数,可以在Eclipse的工作区中找到:
/home/your_initials/workspace/project_name/Debug/name_of_mex_function
。
使用的版本:
Eclipse(Luna Service Release 2(4.4.2))
Linux:4.3.3-2-ARCH(64位)
Matlab:R2015a
gcc:5.3.0