| 9 | 1/1 | 返回列表 |
| 查看: 2499 | 回復: 8 | ||
| 本帖產(chǎn)生 1 個 程序強帖 ,點擊這里進行查看 | ||
[求助]
VS2005下matlab調(diào)用
|
||
|
提示有如下錯誤 1>matlab.obj : error LNK2019: 無法解析的外部符號 _engPutVariable,該符號在函數(shù) _main 中被引用 1>matlab.obj : error LNK2019: 無法解析的外部符號 _mxCreateDoubleMatrix_730,該符號在函數(shù) _main 中被引用 1>C:\Users\zhx\Documents\臨時\matlab\Debug\matlab.exe : fatal error LNK1120: 2 個無法解析的外部命令 是怎么回事。 謝謝 |
金蟲 (文壇精英)
老漢一枚
木蟲 (正式寫手)
|
到MATLAB安裝目錄下,比如 ...\MATLAB\R2010a\extern\lib\win32\microsoft 然后在VC鏈接器的輸入的附加依賴項里面添加需要的lib文件(寫絕對路徑) 需要的庫可能是這些 libeng.lib libmat.lib libmatlb.lib libmatlbmx.lib libmex.lib libmwarpack.lib libmwlapack.lib libmx.lib 本來剛看到的時候就想回復了,但是想想太麻煩....樓主可以自己找一找那些缺的函數(shù)定義在什么lib里面....上面列出來的估計有多余也可能有缺的... |
|
#include #include #include "engine.h" //添加MATLAB引擎頭文件 #include using namespace std; int main() { //定義x,y數(shù)組并賦初值 const int N=20; double x[N],y[N]; for (int i=0;i x=i+1; y=x*x; } Engine *ep; //定義MATLAB引擎指針變量 if(!(ep=engOpen(NULL))) //打開MATLAB引擎 { cout<<"can't start MATLAB engine!"< } //利用MATLAB API mxCreateDoubleMatrix函數(shù)生成矩陣,即申請空間,MATLAB引擎中使用mxArray類型數(shù)據(jù) mxArray *xx=mxCreateDoubleMatrix(1,N,mxREAL);//1行N列,mxREAL為實雙精度矩陣 mxArray *yy=mxCreateDoubleMatrix(1,N,mxREAL); //mxGetPr獲取指向輸入、輸出矩陣數(shù)據(jù)的指針 memcpy(mxGetPr(xx),x,N*sizeof(double));//將數(shù)組 x 復制到 mxarray 數(shù)組 xx 中,即給xx數(shù)組賦值 memcpy(mxGetPr(yy),y,N*sizeof(double)); engPutVariable(ep,"xx",xx);//將 mxArray 數(shù)組 xx 寫入到 Matlab 工作空間,命名為 xx engPutVariable(ep,"yy",yy); engEvalString(ep,"plot(xx,yy)" ;//通過引擎調(diào)用MATLAB中plot(x,y)函數(shù),繪制函數(shù)曲線mxDestroyArray(xx); //釋放內(nèi)存 mxDestroyArray(yy);//釋放內(nèi)存 cout<<"press any key to exit!"< engClose(ep); return 0; } 這是源碼,從網(wǎng)上找的,我只是想配置好以后在一個大程序里調(diào)matlab函數(shù)進行計算和繪圖。 |
木蟲 (正式寫手)
|
測試了一下,確實添加libmx.lib;libeng.lib;libmex.lib;三個庫就夠了 測試的代碼也是你給的那個,結(jié)果是顯示一個曲線 環(huán)境是VS2010+MATLAB2010a (編譯過程遇到一個問題,是MATLAB2010a的一個頭文件的小BUG,估計跟樓主的問題無關(guān),修改之后就OK了) 可能是你的庫沒有添加正確~看你的報錯,屬于鏈接期錯誤... 另外代碼貼在【code】【/code】框里會比較好看,把前面中文的中括號換成英文的... |
木蟲 (正式寫手)
|
注意一下: 項目屬性->鏈接器->常規(guī)->附加庫目錄 還有 項目屬性->鏈接器->輸入->附加依賴項 這兩個地方~ 正確填寫lib文件所在的路徑以及l(fā)ib文件名之后,編譯應該就能成功了... 接著是運行 運行的時候可能會報找不到dll文件,只要將dll文件的路徑,比如 D:\Program Files\MATLAB\R2010a\bin\win32 添加到系統(tǒng)環(huán)境變量里面的PATH中,就可以了(如果嫌這一步麻煩,可以直接拷貝dll文件到C:\windows\system32目錄下,提示缺哪個就拷哪個) 可能需要若干個dll文件,樓主可以慢慢實驗 |
木蟲 (正式寫手)

| 9 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 280求調(diào)劑 +3 | 咕嚕曉曉 2026-03-18 | 3/150 |
|
|---|---|---|---|---|
|
[基金申請] 被我言中:新模板不強調(diào)格式了,假專家開始管格式了 +4 | beefly 2026-03-14 | 4/200 |
|
|
[考研] 08工科 320總分 求調(diào)劑 +4 | 梨花珞晚風 2026-03-17 | 4/200 |
|
|
[考博] 26申博 +4 | 八旬速覽 2026-03-16 | 4/200 |
|
|
[考研] 一志愿南京大學,080500材料科學與工程,調(diào)劑 +4 | Jy? 2026-03-16 | 4/200 |
|
|
[考研] 東南大學364求調(diào)劑 +5 | JasonYuiui 2026-03-15 | 5/250 |
|
|
[考研] 333求調(diào)劑 +3 | 文思客 2026-03-16 | 7/350 |
|
|
[基金申請]
今年的國基金是打分制嗎?
50+3
|
zhanghaozhu 2026-03-14 | 3/150 |
|
|
[考研] 一志愿211 0703方向310分求調(diào)劑 +3 | 努力奮斗112 2026-03-15 | 3/150 |
|
|
[考研] 0703一志愿211 285分求調(diào)劑 +5 | ly3471z 2026-03-13 | 5/250 |
|
|
[考研] 一志愿華中師范071000,325求調(diào)劑 +6 | RuitingC 2026-03-12 | 6/300 |
|
|
[考研] 0703 物理化學調(diào)劑 +3 | 我可以上岸的對?/a> 2026-03-13 | 5/250 |
|
|
[考研] 085601材料工程315分求調(diào)劑 +3 | yang_0104 2026-03-15 | 3/150 |
|
|
[考研] 289求調(diào)劑 +4 | 這么名字咋樣 2026-03-14 | 6/300 |
|
|
[考研] 328求調(diào)劑 +3 | 5201314Lsy! 2026-03-13 | 6/300 |
|
|
[考研] 【0703化學調(diào)劑】-一志愿華中師范大學-六級475 +5 | Becho359 2026-03-11 | 5/250 |
|
|
[考研] 266求調(diào)劑 +4 | 學員97LZgn 2026-03-13 | 4/200 |
|
|
[考研] 304求調(diào)劑 +6 | Mochaaaa 2026-03-12 | 7/350 |
|
|
[考研] 0856材料與化工301求調(diào)劑 +5 | 奕束光 2026-03-13 | 5/250 |
|
|
[考研] 329求調(diào)劑 +3 | miaodesi 2026-03-12 | 4/200 |
|