无法导出mexFunction:未定义符号collect2.exe:错误:ld返回1退出状态

c++ matlab

572 观看

1回复

1 作者的声誉

我使用Matlab r2017a,当我使用'mex pq_demo.cpp'编译C ++文件时,出现错误:

无法导出mexFunction:未定义符号
collect2.exe:错误:ld返回1退出状态

我的mexFunction在pq_create.cpp中:

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){
    // read the parameters
    // check input
    if( nrhs != 1 || !mxIsNumeric(prhs[0]) )
        mexErrMsgTxt("A unique scalar number with the expected size of the queue is necessary.\n");

    // retrieve the data
    int nelems = 100;
    retrieve_data( prhs[0], nelems );

    // instantiate the priority queue
    MaxHeap<double>* pq = new MaxHeap<double>(nelems);

    // convert the points to double
    plhs[0] = mxCreateDoubleMatrix(1,1,mxREAL);
    double* pointer_to_tree = mxGetPr(plhs[0]);
    pointer_to_tree[0] = (long long) pq;
}

所以,我该如何解决该错误。谢谢!

作者: Karymartin 的来源 发布者: 2017 年 9 月 15 日

回应 1


-1

1 作者的声誉

您应该mex.h首先包含头文件,例如#include mex.h

作者: JW Yang 发布者: 2018 年 5 月 10 日
32x32