Matlab mex 无法构建,但 gcc 可以

Matlab mex can not build but gcc can

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

error: exponent has no digits

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

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

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

编辑:

为了说明更多,我在两个文件中找到了源代码:

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

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

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

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

默认不起作用的原因是因为 mex 喜欢选择 ANSI standard,通常不是最新的。