Matlab mex无法构建,但gcc可以

时间:2015-10-15 01:20:26

标签: matlab gcc mex

我是Matlab的新手,正在尝试构建一个C文件。使用gcc(64位Ubuntu中的4.8.4)可以很好地编译代码。但是当我尝试使用mex构建时,它会显示以下错误:

error: exponent has no digits

我不确定我做错了什么。错误是in this file。完成error log is here

当我使用gcc编译代码时,没有错误。我没有向gcc提供任何特殊参数。据我所知,mex正在使用gcc,所以我不明白为什么mex无法构建代码。

我对C编程知之甚少,非常感谢任何帮助!

编辑:

为了澄清更多,我有两个文件来源:

  • 文件1的C代码带有main函数,并使用this file中的函数(mex无法构建)。

  • 文件2具有调用文件1的main函数的S-Function的C代码。文件2包含include语句,以包含File 1

当我说我可以使用gcc构建时,我只使用此命令构建File 1gcc file1.c -o file1。我认为在我的问题中,不使用File 2构建gcc没有影响,因为只有文件1使用mex无法构建的文件中的那些函数。

我使用Matlab mex file2.c中的这个命令来构建并得到错误。

1 个答案:

答案 0 :(得分:1)

对于C代码,您可能需要为C99(-std=gnu99)启用GNU扩展。如my previous post中有关启用C99的说明,将其传递给mex

mex -v -largeArrayDims CFLAGS="\$CFLAGS -std=gnu99" mexSouce.c

默认设置不起作用的原因是因为mex喜欢选择ANSI standard,而2.3. Contextual Sessions通常不是最新版本。