未能在Matlab 2014a中编译mex

未能在Matlab 2014a中编译mex,matlab,gcc,mingw,mingw-w64,sundials,Matlab,Gcc,Mingw,Mingw W64,Sundials,我试图在Windows764位机器上用Matlab2014a编译一个.c文件。编译器是一个Mingw-w64 gcc: mex -lsundials_nvecserial -lsundials_cvode -lm -IC:/sundials/include -LC:/sundials/lib model_pike_cvode.c 然后它给了我一些错误: Error using mex gcc: error: sundials_nvecserial.lib: No such file or di

我试图在Windows764位机器上用Matlab2014a编译一个.c文件。编译器是一个Mingw-w64 gcc:

mex -lsundials_nvecserial -lsundials_cvode -lm -IC:/sundials/include -LC:/sundials/lib model_pike_cvode.c
然后它给了我一些错误:

Error using mex
gcc: error: sundials_nvecserial.lib: No such file or directory
gcc: error: sundials_cvode.lib: No such file or directory
gcc: error: libm.lib: No such file or directory
首先,我非常确定sundails\u invecserial.lib和sundails\u cvode.lib位于C:/sundails/lib/文件夹下,该文件夹在-L选项后的命令中指示

其次,我知道我的机器中没有libm.lib。我需要该选项,因为.c文件“include”。我安装了一个VisualStudio,虽然我没有使用它。我可以在里面找到'math.h',但找不到'libm.lib'。所以我想问题是,如何在Windows机器上调整/避免“-lm”选项

提前谢谢大家,


John

如何在Windows上使用gcc进行编译?你在使用gnumex吗?如果是这样,请尝试mex model_pike_cvode.c COMPFLAGS=$COMPFLAGS-IC:/sundals/include-LC:/sundals/lib GM_ADD_LIBS=$GM_ADD_LIBS-lsundalials\n invecserial-lsundalials\u cvode-lm。Matlab在Matlab的最新版本中更改了MEX接口,因此这可能不起作用,但在旧版本的Matlab上编译时,我会在Windows上使用gnumex传递标志和库。谢谢您的回复。我用的是MinGW-w64。我尝试了你的命令,但它给了我一组新的错误。根据提示,日晷库似乎没有正确链接。