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

| 9 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 293求調(diào)劑 +11 | zjl的號(hào) 2026-03-16 | 16/800 |
|
|---|---|---|---|---|
|
[考研] 302求調(diào)劑 +7 | 呼呼呼。。。。 2026-03-17 | 7/350 |
|
|
[碩博家園] 湖北工業(yè)大學(xué) 生命科學(xué)與健康學(xué)院-課題組招收2026級(jí)食品/生物方向碩士 +3 | 1喜春8 2026-03-17 | 5/250 |
|
|
[考研] 材料專碩326求調(diào)劑 +6 | 墨煜姒莘 2026-03-15 | 7/350 |
|
|
[考研] 0854可跨調(diào)劑,一作一項(xiàng)核心論文五項(xiàng)專利,省、國(guó)級(jí)證書40+數(shù)一英一287 +3 | 小李0854 2026-03-16 | 3/150 |
|
|
[考研] 一志愿南京大學(xué),080500材料科學(xué)與工程,調(diào)劑 +4 | Jy? 2026-03-16 | 4/200 |
|
|
[考研] 302求調(diào)劑 +4 | 小賈同學(xué)123 2026-03-15 | 8/400 |
|
|
[碩博家園] 深圳大學(xué)碩士招生(2026秋,傳感器方向,僅錄取第一志愿) +4 | xujiaoszu 2026-03-11 | 9/450 |
|
|
[考研] 289求調(diào)劑 +6 | 步川酷紫123 2026-03-11 | 6/300 |
|
|
[基金申請(qǐng)] 國(guó)自科面上基金字體 +6 | iwuli 2026-03-12 | 7/350 |
|
|
[考研] 一志愿211 0703方向310分求調(diào)劑 +3 | 努力奮斗112 2026-03-15 | 3/150 |
|
|
[考研] 304求調(diào)劑 +3 | 曼殊2266 2026-03-14 | 3/150 |
|
|
[考研] 0856求調(diào)劑 +3 | 劉夢(mèng)微 2026-03-15 | 3/150 |
|
|
[考研] 材料工程327求調(diào)劑 +3 | xiaohe12w 2026-03-11 | 3/150 |
|
|
[考研] 297一志愿上交085600求調(diào)劑 +5 | 指尖八千里 2026-03-14 | 5/250 |
|
|
[考研] 328求調(diào)劑 +3 | 5201314Lsy! 2026-03-13 | 6/300 |
|
|
[考研] 【0703化學(xué)調(diào)劑】-一志愿華中師范大學(xué)-六級(jí)475 +5 | Becho359 2026-03-11 | 5/250 |
|
|
[考研] 315求調(diào)劑 +9 | 小羊小羊_ 2026-03-11 | 10/500 |
|
|
[考研] 310求調(diào)劑 +3 | 【上上簽】 2026-03-11 | 3/150 |
|
|
[考研] 考研調(diào)劑 +4 | 芬達(dá)46 2026-03-12 | 4/200 |
|