2012-11-28 72 views
0

我遇到編譯It ++庫的問題。我已經正確安裝了它,並通過一個沒有mex的簡單示例進行了測試。使用Mex和IT ++編譯問題

MEX it_mex_fkmigration.cpp -litpp

it_mex_fkmigration.cpp:1:25: error: itpp/itcomm.h: No such file or directory 
it_mex_fkmigration.cpp:2:26: error: itpp/itmex.h: No such file or directory 
it_mex_fkmigration.cpp:4: error: expected namespace-name before ';' token 
it_mex_fkmigration.cpp:4: error: '<type error>' is not a namespace 
it_mex_fkmigration.cpp:6: error: 'mxArray' has not been declared 
it_mex_fkmigration.cpp:6: error: expected ',' or '...' before '*' token 
it_mex_fkmigration.cpp:6: error: ISO C++ forbids declaration of 'mxArray' with no type 
it_mex_fkmigration.cpp: In function 'void mexFunction(int, int**, int, int)': 
it_mex_fkmigration.cpp:9: error: 'mexErrMsgTxt' was not declared in this scope 
it_mex_fkmigration.cpp:10: error: 'mexErrMsgTxt' was not declared in this scope 
it_mex_fkmigration.cpp:13: error: 'bvec' was not declared in this scope 
it_mex_fkmigration.cpp:13: error: expected `;' before 'input_bits' 
it_mex_fkmigration.cpp:16: error: 'cvec' was not declared in this scope 
it_mex_fkmigration.cpp:16: error: expected `;' before 'output_symbols' 
it_mex_fkmigration.cpp:17: error: 'QPSK' was not declared in this scope 
it_mex_fkmigration.cpp:17: error: expected `;' before 'qpsk' 
it_mex_fkmigration.cpp:19: error: 'output_symbols' was not declared in this scope 
it_mex_fkmigration.cpp:19: error: 'qpsk' was not declared in this scope 
it_mex_fkmigration.cpp:19: error: 'input_bits' was not declared in this scope 
it_mex_fkmigration.cpp:23: error: 'mxCOMPLEX' was not declared in this scope 
it_mex_fkmigration.cpp:23: error: 'mxCreateDoubleMatrix' was not declared in this scope 
it_mex_fkmigration.cpp:26: error: 'cvec2mxArray' was not declared in this scope 

回答

0

你需要告訴mex當它++庫的位置。使用-I選項指定包含路徑;和-L選項來指定庫搜索路徑。

mex it_mex_fkmigration.cpp -litpp -Ipath/to/it++/library -Lpath/to/libitpp 

我與-L選項過去遇到了麻煩,不得不使用-l選項指定到庫的完整路徑來解決它。

mex it_mex_fkmigration.cpp -lpath/to/libitpp/libitpp.a -Ipath/to/it++/library 

可以傳遞到mex其他選項在documentation所列(該墨西哥腳本下切換部分)。

此外,誤差約mxArraymexErrMsgTxt等說明你還沒有it_mex_fkmigration.cpp

+0

包括mex.h謝謝!但是,當我將路徑添加到我的itpp/itmex.h文件(對我來說是/ usr/local/include/itpp)時,我仍然收到沒有找到文件的錯誤。 >> mex it_mex_fkmigration.cpp -litpp -I/usr/local/include/itpp -L/usr/local/lib it_mex_fkmigration.cpp:1:24:錯誤:itpp/itmex.h:沒有這樣的文件或目錄 mex:'「it_mex_fkmigration.cpp」的編譯失敗。 –

+0

@CarnezDavis如果你有#include itpp/itmex.h文件路徑是/ usr/local/include/itpp/itmex.h,'-I'指令需要是'-I/usr /本地/ include' – Praetorian