MxArray.obj文件的生成

来源:互联网 发布:新开的淘宝店怎么装修 编辑:程序博客网 时间:2024/05/24 04:33

1.
在Matlab中,使用mex指令:

mex -largeArrayDims   -g  -I'E:\matlabworkplace\headpose_with_block\third_part\mexopencv-2.4\include' -I'C:\OpenCV2.4\build\include' -L'C:\OpenCV2.4\build\x64\vc10\lib'  -lopencv_calib3d249 -lopencv_contrib249 -lopencv_core249 -lopencv_features2d249 -lopencv_flann249 -lopencv_gpu249 -lopencv_highgui249 -lopencv_imgproc249 -lopencv_legacy249 -lopencv_ml249 -lopencv_nonfree249 -lopencv_objdetect249 -lopencv_ocl249 -lopencv_photo249 -lopencv_stitching249 -lopencv_superres249 -lopencv_ts249 -lopencv_video249 -lopencv_videostab249 -c 'E:\matlabworkplace\headpose_with_block\third_part\mexopencv-2.4\src\MxArray.cpp' -outdir 'E:\matlabworkplace\headpose_with_block\third_part\mexopencv-2.4\lib'

虽然上面加入了-g,但是生成的obj还是release版本的,不能进行调试,(加-g和不加好像没有作用,都是release版本的)因此,我们在VS中进行编译。

2.
(1)在VS2010中,新建控制台应用程序–在向导中选择“静态库”。在项目的属性–VC++目录中配置如下(或者在属性管理器中,Debug|x64,属性进行配置):
包含目录:

C:\OpenCV2.4\build\includeC:\OpenCV2.4\build\include\opencvC:\OpenCV2.4\build\include\opencv2D:\Program Files\MATLAB\R2014b\extern\include

库目录:

C:\OpenCV2.4\build\x64\vc10\libD:\Program Files\MATLAB\R2014b\extern\lib\win64\microsoft

(2)在属性页,常规,修改目标文件名为:MxArray和目标文件扩展名.obj。
(3)选中项目,然后右键,编译或者重新编译。即可,在项目的同等目录下,有个x64文件夹,里面就有Debug和Release生成的目标文件。同样可以生成库文件(.lib)
对于Release采用同样的方法。

3.
Debug版本的MxArray.obj用于对MxArray.cpp的调试。
Release版本的MxArray.obj用于mex对其他mex.cpp进行编译时使用。
如:

cmd=['mex ' file ' -g -largeArrayDims ' obj   ' -I' toolboxDir ' -I'  vlInlucdDir ' -I' mexopencvIncludeDir ' -I' opencvIncludeDir  ' -outdir ' mexwDir  ' -L' vllibDir vlLibs ' -L' opencvlibDir opencvLibs];eval(cmd);

如果不统一的化,会提示:

检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”

4.
(1)我们在VS下编写代码(供混合编程调用)进行调试时,引用到MxArray.obj必须是Debug版本的。
(2)而当我们利用mex编译文件时,用到的MxArray.obj必须是Release版本的。

0 0
原创粉丝点击