使用 MinGw 平台和 MPICH、fftw lapack 和 BLAS 等库为 windows 编译 linux 程序 (OpenMX)?
compile linux program (OpenMX) for windows with MinGw platform and libraries such as MPICH,fftw lapack and BLAS?
openMX 代码 (http://www.openmx-square.org/download.html) 是一个基于密度泛函理论的纳米级 material 模拟软件包。它有一个 make 文件,其中包含 C 和 fortran 编译器可执行文件、库和包含文件,
见下文:
CC = mpicc -O3 -fopenmp -Dnosse -I/usr/include -I/mirror/fftw/include -I/mirror/mpich/include
FC = mpif90 -O3 -fopenmp -Dnosse -I/usr/include -I/mirror/fftw/include -I/mirror/mpich/include
LIB=-L/mirror/lib -llapack -lblas -lfftw3 -L/mirror/mpich -lmpi -lmpicxx -lmpifort -lpthread -lgfortran
我想为 windows 独立编译此程序 运行。
我不知道 MinGw 是否可行?我如何为 mingw 使用 mpicc 和 mpif90 编译器以及 lapack、blas 和 fftw3 库?
谢谢
好的。一些东西:
mpicc/mpif90 是包装器,它添加了适当的编译 / link 标志。不需要它们可用于构建程序。
在我看来,MinGW 曾经是继续 Windows 的方式。现在,我会投入精力为项目设置 CMake,并实际使用 VisualStudio 进行构建。
如果你想使用 gcc 等来构建,那完全没问题,但我不会使用 MinGW,而是在 Linux 上进行交叉编译。这确实可以节省时间。在 MinGW 下,使用 Linux.
进行交叉编译时,配置脚本有时需要 10 倍或更多的时间才能完成
MPI 在 Windows 上的完成并不简单。您需要 Windows 具有域身份验证的域才能使 MPI 工作。相当于你ssh public key.
例如查看此页面:https://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.html
openMX 代码 (http://www.openmx-square.org/download.html) 是一个基于密度泛函理论的纳米级 material 模拟软件包。它有一个 make 文件,其中包含 C 和 fortran 编译器可执行文件、库和包含文件,
见下文:
CC = mpicc -O3 -fopenmp -Dnosse -I/usr/include -I/mirror/fftw/include -I/mirror/mpich/include
FC = mpif90 -O3 -fopenmp -Dnosse -I/usr/include -I/mirror/fftw/include -I/mirror/mpich/include
LIB=-L/mirror/lib -llapack -lblas -lfftw3 -L/mirror/mpich -lmpi -lmpicxx -lmpifort -lpthread -lgfortran
我想为 windows 独立编译此程序 运行。 我不知道 MinGw 是否可行?我如何为 mingw 使用 mpicc 和 mpif90 编译器以及 lapack、blas 和 fftw3 库?
谢谢
好的。一些东西:
mpicc/mpif90 是包装器,它添加了适当的编译 / link 标志。不需要它们可用于构建程序。
在我看来,MinGW 曾经是继续 Windows 的方式。现在,我会投入精力为项目设置 CMake,并实际使用 VisualStudio 进行构建。
如果你想使用 gcc 等来构建,那完全没问题,但我不会使用 MinGW,而是在 Linux 上进行交叉编译。这确实可以节省时间。在 MinGW 下,使用 Linux.
进行交叉编译时,配置脚本有时需要 10 倍或更多的时间才能完成MPI 在 Windows 上的完成并不简单。您需要 Windows 具有域身份验证的域才能使 MPI 工作。相当于你ssh public key.
例如查看此页面:https://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.html