matlab和vs 进行混合编程时总需要使用matlab编译mexFunction.cpp文件。这些文件免不了使用include下的*.h和lib下的*.lib文件。举例说明,这次我的cpp中用到了opencv/cv.h。在matlab\bin\win64\mexopts文件夹下有一个msvsopts100.bat的批处理文件。
用notepad 将这个文件打开在”include=“ 和 “lib=” 后面添加需要使用的路径并加分号“;”
设置好之后保存。然后在matlab 中 输入mex mexFunction.cpp。但是还是会出现 cannot open file “opencv/cv.h”。这是为什么呢?
仔细观察发现mscvopts100.bat 中第6行中有这样一句话rem C++keyName: Microsoft Visual C++ 2010。这句话证明mscvopts100.bat ,在mex -setup的过程中修改过。因此可以猜测需要再次进行mex -setup 才能使这些路径生效。经过试验,确实如此。困扰了我两周。希望能给大家省时间。
Matlab与C/C++联合编程之从Matlab调用C/C++代码