MX在将matlab与VC++集成时产生双矩阵错误
MX Create double matrix error when integrating matlab with VC++
当我创建一个项目将图像的路径传递到我的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:未解析的外部符号_mxCreateDoubleMatrix_730_proxy在函数_main 中引用
错误3
错误LNK1120:2个未解析的外部
那么我该如何解决这些错误呢??
我在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
,指示所有内容都已初始化,您应该检查它。
相关文章:
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 数组数据以错误的方式遍历 Python/Matlab
- Matlab 编码器转换可变大小单元格错误
- MATLAB MEX:-STD = C 11使用,但MEX错误仍然是错误
- Android C++Matlab NDK错误:未定义对:rtNaN的引用
- 在MATLAB中仅接受INT32PTR时,将错误编号作为字符串返回
- Matlab 编码器错误 "for loop index expressions.." 如何修改代码?
- 使用MatLab dll时出现C++错误:找到一个或多个多重定义的符号
- Matlab R2016a Mex文件错误
- C 结构中的分段错误。使用 Matlab Coder 从 Matlab->C 翻译的代码
- 链接错误 OpenCV 仅在使用 -wl,-rpath,/usr/local/MATLAB/R2014b/bin/gln
- MATLAB-C 接口:内存上的访问冲突错误
- matlab R2013a与MS VC++2013之间的链接错误
- 使用MATLAB mex将矢量分配给另一个矢量时出现分割错误
- Matlab Codegen构建错误
- 当从matlab使用boost::线程时,挂起和/或段错误,而不是直接调用时
- Linker错误最可爱的二进制与matlab
- 从c++调用MATLAB dyld:库未加载错误
- 从c++调用MATLAB错误:无法解析的外部符号
- MATLAB代码与C/ c++集成时的致命错误