我是新來的Matlab,並試圖建立一個C文件。代碼用gcc(64位Ubuntu中的4.8.4)編譯得很好。但是,當我嘗試建立與mex
,它顯示了以下錯誤:Matlab的mex不能建立,但海合會可以
error: exponent has no digits
我不知道我在做什麼錯。錯誤是in this file。完成error log is here。
當我使用gcc編譯代碼時,沒有錯誤。我沒有提供任何特別的參數給gcc。據我所知,mex
正在使用gcc
,所以我不明白爲什麼mex
無法構建代碼。
我對C編程知之甚少,任何幫助都非常感謝!
編輯:
爲了澄清更多的,我已經得到了源在兩個文件中:
文件1設有一個
main
函數的C代碼,並從this file使用函數(mex
不能建立)。文件2具有
S-Function
的C代碼,該代碼調用文件1的main
函數。文件2的include
聲明包括File 1
。
當我說我可以建立使用gcc
,我剛建File 1
用這個命令:gcc file1.c -o file1
。我認爲不建立File 2
與gcc
這裏沒有影響我的問題,因爲只有文件1使用mex
無法建立的文件中的那些功能。
我使用Matlab命令mex file2.c
這個命令來建立並得到錯誤。
看起來像mex不支持十六進制浮點數,「https:// gcc.gnu.org/onlinedocs/gcc/Hex-Floats.html」,這是行982問題所在。我想你必須傳遞給'mex'選項,告訴在構建代碼時使用GNU擴展 –
顯示成功的gcc命令。 – chappjc
@SeverinPappadeux非常感謝。你能告訴我什麼是GNU擴展,可能,如何將它們傳遞給mex?如果他們是gcc的命令行選項,那麼按照Matlab的文檔很容易通過,但我想不是這種情況。 – giga