使用 GCC (MinGW) 作为 MATLAB 的 MEX 编译器 [英] Using GCC (MinGW) as MATLAB's MEX compiler
问题描述
我获得了一个在 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屋!