0

openMX 代码 ( http://www.openmx-square.org/download.html ) 是一个基于密度泛函理论的纳米级材料模拟软件包。它有一个包含 C 和 fortran 编译器可执行文件、库和包含文件的 make 文件,

见下文:

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 库?

谢谢

4

1 回答 1

0

好的。几件事:

  1. mpicc/mpif90 是包装器,它添加了正确的编译/链接标志。不需要它们来构建程序。

  2. 在我看来,MinGW 曾经是在 Windows 上运行的方式。如今,我将精力投入到为项目设置 CMake 并实际使用 VisualStudio 构建。

  3. 如果您想使用 gcc 等进行构建,那完全可以,但我不会使用 MinGW,而是在 Linux 上进行交叉编译。这真是节省时间。在 MinGW 下,与 Linux 交叉编译时,配置脚本有时需要 10 倍或更长时间才能完成。

  4. MPI 在 Windows 上并不是那么简单。您需要具有域身份验证的 Windows 域才能使 MPI 工作。相当于你的 ssh 公钥。

    检查此页面,例如:https ://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.html

于 2019-03-07T14:45:09.960 回答