我試圖讀取C++與2008年MSVS一個.MAT文件,但構建一個簡單的程序,我收到以下錯誤時:解析的外部符號 - 錯誤用Matlab API
1> ex3.obj:錯誤LNK2019:無法解析的外部符號功能_matClose引用_main 1> ex3.obj:錯誤LNK2019:在函數解析的外部符號_matOpen引用_main
我研究過谷歌以及它似乎是編譯器無法鏈接到使用這個函數所需的庫(matOpen和matClose)。我以前從未使用過外部庫,但我嘗試了在Google中找到的所有內容以添加Matlab庫。我做了以下工作:
工具 - >選項 - >項目和解決方案 - > VC++目錄 - >顯示目錄爲:include文件 - >然後我添加了matlab目錄的路徑 - > C:\ Program Files文件\ MATLAB \ EXTERN \包括
我與庫文件一樣:C:\ Program Files文件\ MATLAB \ EXTERN \ LIB \ Win64的\微軟
我也這樣做,爲項目: 右鍵單擊項目 - >屬性 - >配置屬性 - > C/C++ - >常規 - >其他包含目錄 - >並添加「C:\ Program Files \ MATLAB \ extern \ include \ win64「
然後我在鏈接器 - >常規 - >附加庫目錄 - >上添加了「C:\ Program Files \ MATLAB \ extern \ lib \ win64 \ microsoft」
所以我真的不用不知道問題出在哪裏。這裏是源代碼,我試圖建立:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <mat.h>
int main(int argc, char *argv[])
{
const char *file = "mozart_part1.mat";
MATFile *pmat;
pmat = matOpen(file, "r");
if(pmat == NULL)
{
std::cout << "Error: could not open MAT-file!";
return(1);
}
matClose(pmat);
}
你能看到或猜到我做
感謝您的快速回復!我也添加了這些文件以及...我不想編譯一個mex文件我只想讀取一個.mat向量在C++數組中的信息。希望,你可以想出另一個解決這個問題的方法。非常感謝! – 2012-02-29 15:01:22
@DominikKoller在添加這些庫後會更改錯誤消息嗎? – 2012-02-29 15:16:51
@DominikKoller同樣嘗試按照第5步:在包含'mex.h'之前添加'#define MATLAB_MEX_FILE'。不知道它應該幫助,但也許..此外,你可以嘗試創建一個mex文件,只是爲了看看是否存在必要的庫。 – 2012-02-29 15:19:34