2013-06-05 122 views
0

我在編譯時使用mex這個軟件http://www.cmap.polytechnique.fr/~aspremon/ZIP/COVSEL.zip有一些問題。當我使用MEX,並給它的文件編譯它顯示了以下錯誤編譯mex文件的問題

error: 'CblasColMajor' undeclared (first use in this function) 

我編譯從MATLAB和Mac的LionOS的MEX文件。我使用下面的代碼有什麼建議

編譯

mex BoxQP.c BoxQP_mex.c utils.c 
+0

'CblasColMajor'在頭文件的枚舉中聲明,但僅在爲win32編譯時聲明。我相信如果你在mac上編譯,代碼期望它已經被另一個頭文件聲明。 – Alan

回答

0

確保MACVERSION宏定義,或者自己定義。它看起來像CblasColMajor枚舉是在BoxQP.h的第18行包含的cblas.h文件中定義的。所以我猜你要麼安裝cblas庫,要麼在OSX上默認安裝。這是我不得不使用編譯它在Win32:

mex -v -g BoxQP_mex.c BoxQP.c utils.c -LC:\MATLAB\R2009bSP1\extern\lib\win32\microsoft -lmwblas 

HTH,可能要包括你使用編譯它的線,如果你不能弄清楚。

編輯

你需要找到Matlab的庫路徑安裝,然後該目錄下,你需要尋找extern\lib\然後尋找你的平臺和庫類型一樣,extern\lib\linux\maxos我米不知道它會是什麼樣子,但這是一個猜測。還包括使用-lmwblas的Mathworks BLAS庫。

+0

我編譯了cblass庫並將cblass_LINUX.a庫包放置到/ usr/loca/lib。我還需要做什麼? – user34790

+0

定義MACVERSION後,我可以前進一步。但是,我有以下錯誤。架構x86_64的未定義符號: 「_cblas_daxpy」,從BoxQP.o中的_BoxQP引用 – user34790