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++代碼 http://www.linuxidc.com/Linux/2012-08/68148.htm
二分類SVM方法Matlab實現 http://www.linuxidc.com/Linux/2013-05/84050.htm
Matlab中的取整函數fix, floor, ceil與round http://www.linuxidc.com/Linux/2013-10/91161.htm
Matlab編譯cuda的.cu文件 http://www.linuxidc.com/Linux/2014-04/100675.htm