Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows 下编译 MUMPS 的问题 #453

Open
weihuayi opened this issue Oct 4, 2023 · 0 comments
Open

Windows 下编译 MUMPS 的问题 #453

weihuayi opened this issue Oct 4, 2023 · 0 comments

Comments

@weihuayi
Copy link
Owner

weihuayi commented Oct 4, 2023

1.对 Makefile.inc 针对 Windows 系统做的修改

# Makefile.inc
LPORDDIR = $(topdir)/PORD/lib/
IPORD    = -I$(topdir)/PORD/include/
LPORD    = -L$(LPORDDIR) -lpord
LMETISDIR = /C/msys64/mingw64/lib
IMETIS    = -I/C/msys64/mingw64/include
LMETIS    = -L$(LMETISDIR) -lmetis
ORDERINGSF  = -Dmetis -Dpord
ORDERINGSC  = $(ORDERINGSF)

PLAT    =
LIBEXT  = .a
OUTC    = -o
OUTF    = -o
RM      = /bin/rm -f
CC      = gcc
FC      = gfortran
FL      = gfortran
AR      = ar vr
RANLIB  = ranlib

INCSEQ  = -I$(topdir)/libseq
LIBSEQ  = $(LAPACK) -L$(topdir)/libseq -lmpiseq

LIBBLAS = -lopenblas
LIBOTHERS = -lpthread

CDEFS = -DAdd_
OPTF    = -O -fPIC
OPTC    = -O -fPIC
OPTL    = -O -fPIC

INCS = $(INCSEQ)
LIBS = $(LIBSEQ)
LIBSEQNEEDED = libseqneeded

对于以上多种情况我尝试了多次,一直没有make成功,出现同样的错误为:

  1. Windows 下安装 Mumps Interface for Matlab

此处选择mex -setup FORTRAN显示“错误使用 mex,未检测到支持的编译器。”

把 Makefile 文件直接替换为下面的内容:

# MUMPS_5.1.2/MATLAB 下的 Makefile 文件
MATLABROOT  = /C/MATLAB/R2016b
MUMPSROOT   = /C/msys64/home/why/software/MUMPS_5.1.2
MINGWROOT   = /C/msys64/mingw64

MUMPSLIBS   = -L${MUMPSROOT}/lib -ldmumps -lmumps_common -lpord -L${MUMPSROOT}/libseq -lmpiseq
LIBS        = -L${MINGWROOT}/usr/lib -lmetis -lopenblas -lgfortran                                  # 注意  
MEXLIBS     = -L${MATLABROOT}/extern/lib/win64/microsoft -llibmex -llibeng -llibmat -llibmx -llibut # 这两行中引用软件包名字的区别
CC          = gcc
CCFLAGS     = -I${MATLABROOT}/extern/include -I${MUMPSROOT}/include -I${MUMPSROOT}/libseq

.PHONY: all

all: dmumpsmex.mexw64

dmumpsmex.mexw64: mumpsmex.c
    @${CC} ${CCFLAGS} -shared -fPIC -DMUMPS_ARITH=MUMPS_ARITH_d -O2 -o $@ $< ${MUMPSLIBS} ${LIBS} ${MEXLIBS}
    @strip $@

clean:
    @-rm -f *.o *.mexw64

以及不太清楚以上makefile文件直接替换是否适用于5.6.0版本

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant