gpt4 book ai didi

c++ - MX 将 matlab 与 VC++ 集成时创建双矩阵错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:01:13 24 4
gpt4 key购买 nike

当我创建一个项目以将图像路径传递给我的 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

error LNK2019: unresolved external symbol _mxGetPr_proxy referenced in function _main

错误 2

error LNK2019: unresolved external symbol _mxCreateDoubleMatrix_730_proxy referenced in function _main

错误 3

error LNK1120: 2 unresolved externals

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

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

最佳答案

您需要为链接器包含 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;

注意 feautresPointsInitialize() 将返回一个 bool 表示一切都已初始化,您应该检查它。

关于c++ - MX 将 matlab 与 VC++ 集成时创建双矩阵错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6499793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com