1.要生成C++動态連結庫,在matlab指令視窗中輸入:
>> mcc -W cpplib:ColorHarris -T link:lib ColorHarris -d F:\zhangying\xieyulin\cfile\
結果出現:Depfun error: \'Unable to locate ColorHarris as a function on the MATLAB path\'
原因:目前編譯路徑沒有修改,錯誤已經提示了,将目前matlab路徑改到你這個m檔案所在的路徑下,(點選運作按鈕會出現 change directory,選擇即可)再進行編譯!
2.在VS2010中執行到:
if( !ColorHarrisInitialize())
{
std::cout << "Could not initialize ColorHarris!" << std::endl;
}
時出現:cannot open CTF archive file
\'c:\document~1\jiao\local~1\Temp\mathworks_tem_2696_2808\'
or
\'c:\document~1\jiao\local~1\Temp\mathworks_tem_2696_2808.zip\'
這個問題查了很長時間也沒查出來解決方法,後來建立了工程,重新添加檔案,結果突然沒這個問題了。。就這麼不了了之。。。
參考部落格: http://blog.sina.com.cn/s/blog_4fc6546101011cu5.html
3.将matlab的m檔案用mcc生成.h .lib .dll 檔案後拷貝到VS2010項目根目錄中,結果運作時提示編譯的應用程式或DLL為無效的windows映像。
分析:查了很長時間,覺得應該是拷貝的過程中損壞了dll檔案
解決:在編譯時就将生成檔案的所在目錄指定為VS2010項目根目錄,保留.h .lib .dll 檔案,再将其他檔案項删除即可。為了保險,用mcc -c 生成ctf檔案也放在根目錄下,運作通過。
4.在VS2010調用matlab檔案時,提示 Undefinedfunction “myfun1” for input arguments of type \'double\'.
分析:myfun1與調用的matlab主函數不在同一個檔案夾裡,在matlab中運作時不會出現找不到函數的問題(還是覺得matlab很智能啊)。但VS2010找不到放在另一個檔案夾裡的函數,是路徑的問題。
解決:将myfun1.m拷貝到調用的matlab主函數同一個路徑下(放在同一個檔案夾裡),運作通過。
