我已经调用了一个使用matlab中的mexopencv编译的mex文件。该程序在matlab中运行并没有问题但是当我使用matlab deploytool将matlab转换为c ++共享库并在运行exe时编译为exe应用程序时,我得到一个错误,即找不到mexfile或者它不是有效的文件路径或目录。这可能是什么原因?我应该在Makefile中添加任何额外的库或路径,还是应该更改系统路径?我正在使用linux和MATLAB R2012a,mexopencv。
请注意,可以从matlab调用mex文件,它提供输出,但exe不能调用它。我正在尝试运行已经在mexopencv样本中的facedetection模块。它需要一个xml文件作为输入。为什么它不能检测mex文件和xml文件?
答案 0 :(得分:0)
deploytool应该引入MEX文件,所以我不得不猜测mexopencv文件的依赖关系不包含在生成的库中,或者可以通过LD_LIBRARY_PATH
或LD_PRELOAD
访问。这些将是OpenCV库(例如libopencv_core.so.2.4,libopencv_imgproc.so.2.4等)。
检查mexopencv mex文件与ldd
的其他依赖关系(对于Windows用户,请使用Dependency Walker)。 编辑:然后添加它们!