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

Код 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. Это действительно экономит время. Скрипты конфигурирования иногда должны быть в 10 раз длиннее или больше для завершения в MinGW, что при кросс-компиляции с Linux.
  4. MPI не так тривиально делается в Windows. Для работы MPI необходим домен Windows с аутентификацией домена. сравнимый с тобой открытый ключ ssh.

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

Другие вопросы по тегам