使用 GCC (MinGW) 作为 MATLAB 的 MEX 编译器 [英] Using GCC (MinGW) as MATLAB's MEX compiler

查看:54
本文介绍了使用 GCC (MinGW) 作为 MATLAB 的 MEX 编译器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我获得了一个在 MATLAB R2011a 上运行的项目.由于那里有几个 .c 文件 - 我需要将 GCC 设置为该项目的 MEX 编译器.但是,我似乎找不到有关如何设置它的任何解释.我尝试过一个名为 gnumex 的脚本程序 - 但它失败了(可能是为旧版本的 MATLAB 设置的).

I've been given a project to run on MATLAB R2011a. As there are several .c files in there - I need to set up GCC as the MEX compiler for that project. However, I cannot seem to find any explanation as to how to set it up. I've tried a script program called gnumex - but it failed (probably set up for an older version of MATLAB).

知道如何设置吗?

推荐答案

在Matlab 2011b中,直接在mingw64或cygwin环境编译链接即可.

In Matlab 2011b, just compile and link directly in mingw64 or cygwin environment.

MINGWPATH=c:/MinGW64
CYGPATH=c:/cygwin

MATLABROOT=c:/Progra~1/MATLAB/R2011b
CC=$(MINGWPATH)/bin/x86_64-w64-mingw32-gcc 
CFLAG= -Wall -m64 -O3 -I$(MATLABROOT)/extern/include $(SRC) $(LIBS) -o $(EXE)
MEXFLAG=-m64 -shared -DMATLAB_MEX_FILE -I$(MATLABROOT)/extern/include -Wl,--export-all-symbols $(LIBS) $(MEXSRC) -o $(MEXTGT).mexw64

LIBS= -L$(MATLABROOT)/bin/win64 -L$(MATLABROOT)/extern/lib/win64/microsoft -lmex -lmx -lmwlapack -lmwblas -leng
EXE=../bin/engwindemo.exe
MEXTGT=
SRC=engwindemo.c
MEXSRC=
all:$(EXE)

$(EXE):  $(SRC)
    $(CC) $(CFLAG) -ladvapi32 -luser32 -lgdi32 -lkernel32 -lmingwex -o $(EXE)
    @rm -f *.o*

$(MEXTGT):  $(MEXSRC)
    $(CC) $(MEXFLAG) -ladvapi32 -luser32 -lgdi32 -lkernel32 -lmingwex 
    @rm -f *.o*

把这个makefile放在源代码目录和make.无需 dll 文件转换.

Put this makefile on the source code directory and make. No dll files conversion needed.

这篇关于使用 GCC (MinGW) 作为 MATLAB 的 MEX 编译器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆