скомпилировать программу Linux (OpenMx) для Windows с платформой MinGW и библиотеками, такими как MPICH, fftw lapack и BLAS?

#mingw #lapack #blas #mpich #openmx

#mingw #lapack #blas #mpich #openmx

Вопрос:

Код OpenMx (http://www.openmx-square.org/download.html ) представляет собой программный пакет для моделирования материалов в наномасштабе на основе теорий функционала плотности. у нее есть файл 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? как я могу использовать компиляторы mpicc и mpif90 и библиотеки lapack, blas и fftw3 для mingw?

Спасибо

Ответ №1:

ОК. Пара вещей:

  1. mpicc / mpif90 — это оболочки, которые добавляют надлежащие флаги компиляции / ссылки. нет необходимости, чтобы они были доступны для сборки программ.

  2. На мой взгляд, MinGW раньше был подходящим вариантом для Windows. В настоящее время я бы вложил энергию в настройку CMake для проекта и фактически собирал с помощью VisualStudio.

  3. Если вы хотите использовать gcc и т.д. Для сборки, это совершенно нормально, но я бы не использовал MinGW, а делал перекрестную компиляцию в Linux. Это действительно экономит время. Для завершения работы скриптов настройки под MinGW иногда требуется в 10 или более раз больше времени, чем при перекрестной компиляции с Linux.

  4. MPI не так тривиально выполняется в Windows. Для работы MPI вам нужен домен Windows с доменной аутентификацией. сопоставимо с вашим открытым ключом ssh.

    проверьте эту страницу, например:https://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.html