2

当我创建一个项目以将图像路径传递给我的 matlab 项目并创建初始化时:

#include "feautresPoints.h"


int main(int argc, char* argv[])
{
    mxArray* result;
    mxArray* x;
    double myArray[5]={10.2, 3, 6.3, 5.4, 5.9};

    x=mxCreateDoubleMatrix(1, 5, mxREAL);
    memcpy(mxGetPr(x), myArray, 5 * sizeof(double));

    feautresPointsInitialize();

    feautresPointsTerminate();


    return 0;
}

它给了我3个错误

错误 1

错误 LNK2019:函数 _main 中引用的未解析的外部符号 _mxGetPr_proxy

错误 2

错误 LNK2019:函数 _main 中引用的未解析的外部符号 _mxCreateDoubleMatrix_730_proxy

错误 3

错误 LNK1120:2 个未解决的外部

那么我该如何解决这些错误?

我将编译期间生成的 matlab 项目库包含在 C++ 项目和 libmx.lib 中,还添加了 matlab 的包含文件,还添加了 matlab 库以获取其他库目录

4

1 回答 1

0

您需要包含链接器的 MATLAB 库。在我的例子中:“C:\Program Files\MATLAB\MATLAB Compiler Runtime\v714\extern\lib\win32\microsoft*”

此外,您没有正确初始化 MATLAB 环境,请参阅 MATLAB 帮助中的“使用 mclInitializeApplication 和 mclTerminateApplication 初始化和终止您的应用程序”。

mxArray* result;
mxArray* x;

mclInitializeApplication(NULL,0);
feautresPointsInitialize();

/* Your c++ code here */

feautresPointsTerminate();
mclTerminateApplication();

return 0;

NotefeautresPointsInitialize()将返回一个bool指示一切都已初始化的指示,您应该检查它。

于 2011-08-30T13:53:44.660 回答