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

查看:193
本文介绍了使用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天全站免登陆