WIN8.1下MSVC2013調用MATLAB engine
環境說明
1. 系統:64位win8.1
2. MSVC2013:64位
3. MATLAB:2014a 64位
說明:QT調用matlab engine如下:
http://blog.sina.com.cn/s/blog_89a45b020102vrr8.html
matlab頭文件與庫文件的引用
1. 進入:工程項目->屬性->配置屬性->VC++目錄,在以下兩個目錄下添加matlab頭文件與庫文件地址,如圖1所示
a) 包含目錄:C:\MATLAB\R2014a\extern\include
b) 庫目錄:C:\MATLAB\R2014a\extern\lib\win64\microsoft
c) 說明:不同版本的MATLAB的文件地址可能有所不同
2. 進入:工程項目->屬性->配置屬性->鏈接器->輸入,添加依賴項,如圖2
a) 附加依賴項:libmx.lib libmat.lib libeng.lib
b) 說明:這3個庫文件都在C:\MATLAB\R2014a\extern\lib\win64\microsoft下。
圖2 添加依賴項
環境變量的設置
1. 進入:右鍵“這臺電腦”->屬性->高級系統設置->高級->環境變量->新建用戶變量,如圖3
a) 變量名:Path
b) 變量值:C:\MATLAB\R2014a\bin\win64;
c) 說明:如果不設置環境變量,程序編譯會通過,但運行過程中會報錯,提示缺少各種.dll文件,這些文件都在這個路徑下
圖3 環境變量的設置
MSVC2013編譯器的設置
由於本人的matlab是64位,編譯器默認的是32位,無法編譯通過,出現號“error LNK2019: 無法解析的外部符”,因此編譯器需要設置成64位。
1. 進入:生成->配置管理器->活動解決方案平臺->新建,如圖4顯示
2. 修改後工具欄中選擇x64平臺,如圖5所示
3. 說明:這一步設置可能理解不正確,屬於誤打誤撞解決了,有一定的偶然性,可以在這裏多次嘗試,並且可能需要重啓msvc2013
圖4 新建64位編譯器
圖5 選擇x64平臺
測試例程
1. 用MSVC2013新建一個win32控制檯應用程序
2. Main.cpp 如下,直接選擇matlab給出的一個案例,地址爲:
C:\MATLAB\R2014a\extern\examples\eng_mat\engdemo.c
3. 程序編譯後,運行結果如圖6,會打開一個matlab command window,並繪圖
圖6 程序運行結果
Matlab engine API介紹
這裏不做過多重複介紹,給出幾個參考地址吧
1. MATLAB Engine API介紹:http://blog.sina.com.cn/s/blog_67d069a90100q37c.html
2. MATLAB Engine API for C,C++,and Fortran:http://cn.mathworks.com/help/matlab/calling-matlan-engine-from-c-c-and-fortran-programs.html
其它問題
1. Matlab mcc不可用
如果程序編譯通過,運行matlab時無法加載,可能是matlab的破解不夠徹底,可以到網上找一下破解包,關於matlab編譯器mcc的破解。直接給出下載地址:
鏈接:http://pan.baidu.com/s/1gdzNBxx
密碼:jqm5