我是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 1
:gcc file1.c -o file1
。我认为在我的问题中,不使用File 2
构建gcc
没有影响,因为只有文件1使用mex
无法构建的文件中的那些函数。
我使用Matlab mex file2.c
中的这个命令来构建并得到错误。
答案 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通常不是最新版本。