(2)設置工程目錄: ( 我並無設置)
項目右鍵->屬性->C/C++->常規->附件包含目錄:添加
<MATLAB>\R2010b\extern\include\win64
<MATLAB>\R2010b\extern\include\
項目右鍵->屬性->連接器->常規:添加
<MATLAB>\R2010b\extern\lib\win32\microsoft
<MATLAB>\R2010b\extern\lib\win64\microsoft
項目右鍵->屬性->連接器->輸入->附件依賴性:添加 (必作)
libeng.lib
libmat.lib
libmex.lib
libmx.lib
注:1.lib文件包含在<MATLAB>\R2010b\extern\lib\win64\microsoft,可根據須要增減
2.附件依賴性在VS2010前以空格隔開,在VS2010後使用;隔開。
截圖:
個人截圖:
項目右鍵->屬性->連接器->高級->目標計算機:更改(只針對64位WINDOWS) (選作)
MachineX86 -> MachineX64
注:分析緣由爲MATLAB根據計算機平臺選擇了X64編譯環境,如此處不修改會出現 錯誤3
(3)配置管理器設置(只針對64位WINDOWS) (必作)
生成->配置管理器->平臺:更改
Win32->X64
注:分析緣由爲配合連接器中目標計算機的修改,如此處不修改會出現 錯誤4
截圖:
3.系統(Windows)環境設置 (必作)
個人電腦->屬性->高級系統設置->高級->環境變量->Path,添加:
<MATLAB>\R2010b\bin;<MATLAB>\R2010b\extern\lib\win64\microsoft;<MATLAB>\bin\win64
注:1.Windows7的狀況下,「用戶變量」和「系統
變量」都需 添加,如不添加,運行時會出現 錯誤5
2.哈哈,別忘記重啓哈,重啓後生效
OK!配置就此結束,如今就開始engOpen吧!!對了,別忘記添加#include "engine.h"。
例程:
#include <iostream> #include "windows.h" #include "math.h" #include "engine.h" //Matlab的頭文件 int main () { const int N = 50; double x [ N ], y [ N ]; int j = 1; for ( int i = 0; i < N ; i ++) { x [ i ] = ( i + 1); y [ i ] = sin ( x [ i ]) + j * log ( x [ i ]); j *= -1; } Engine * pEng = NULL ; //open engine if (!( pEng = engOpen ( NULL ))) { std :: cout << "Openmatlab enging failed!" << std :: endl ; system ( "pause" ); return -1; } mxArray * xx = mxCreateDoubleMatrix (1, N , mxREAL ); mxArray * yy = mxCreateDoubleMatrix (1, N , mxREAL ); memcpy ( mxGetPr ( xx ), x , N * sizeof ( double )); memcpy ( mxGetPr ( yy ), y , N * sizeof ( double )); engPutVariable ( pEng , "xx" , xx ); engPutVariable ( pEng , "yy" , yy ); std :: string evalString = "plot(xx,yy);" ; engEvalString ( pEng , evalString . c_str ()); mxDestroyArray ( xx ); mxDestroyArray ( yy ); Sleep (3*60*100); //close engine 關閉Matlab if ( NULL != pEng ) { engClose ( pEng ); } system ( "pause" ); return 1; }
效果;
附錄:錯誤狀況及解決
2.提示:「libeng.lib libmat.lib"沒法打開
解決:附件依賴性在VS2010前以空格隔開,在VS2010後使用;隔開。
3.提示:「 "error LNK2019: 沒法解析的外部符號 _interp1Initialize,該符號在函..."」
解決:操做如2.VS環境設置中的(2) 項目右鍵->屬性->連接器->高級->目標計算機:更改...及(3)
4.提示:「 "模塊計算機類型「X86」與目標計算機類型「x64」衝突..."」
解決:操做如2.VS環境設置中的(3)
4.提示:「 系統丟失libeng.dll..."」
解決:操做如 3.系統環境設置
1.mbuild – setup後沒有「VS2010」選項
解決:MATLAB 2010b 以後包含對VS2010編譯器的支持,2010a及以前版本不包含支持。若是MATLAB環境較低,Matlab官方有一個補丁(http://www.mathworks.com/support/solutions/en/data/1-D5W493/?solution=1-D5W493)