Как я могу настроить Linux для компиляции кода FORTRAN в двоичные файлы Windows? - PullRequest
2 голосов
/ 11 августа 2011

Я работаю над проектом FORTRAN, и я хотел бы собрать все двоичные файлы, которые я хочу поддерживать, на машине linux, предназначенной для автоматизированных сборок.Я успешно использовал mingw для создания 32-разрядных и 64-разрядных двоичных файлов из исходного кода C для машин Windows на компьютере с Linux со следующими пакетами в Ubuntu.

apt-get install mingw32
apt-get install mingw-w64

Затем я запускаю следующие команды для фактической компиляции:

gcc -b amd64-mingw32msvc -V 4.4.4 -o <...other options>

Однако пакеты mingw , которые я получил через apt-get, невключают компиляторы FORTRAN.

У кого-нибудь есть идеи по поводу того, что я могу сделать?

Ответы [ 4 ]

3 голосов
/ 22 ноября 2012

Я знаю, что это старая ветка, но некоторые вещи, похоже, изменились, и люди могут по-прежнему интересоваться этой темой.

Проблема: я хочу использовать свою машину Linux для компиляции некоторого кода и создания.exe, который я могу отправить людям, использующим Windows.

Решение: По существу здесь: http: //mxe.cc/

Что я сделал:

  • Проверитьчтобы увидеть, есть ли в вашей системе все необходимое программное обеспечение здесь
  • run

git clone -b stable https://github.com/mxe/mxe.git

Будет загружено несколько мелких вещейи создайте каталог "mxe" (вероятно, в вашей домашней папке)

  • cd в этот каталог mxe и запустите "make".ОДНАКО: это заняло бы часы и заняло бы несколько ГБ на вашем жестком диске, поэтому вместо этого запустите что-то вроде

    make mpfr eigen opencsg cgal qt

Для получения дополнительных идей о том, как сократить этовсе видят это или учебник по mxe или где-то еще;)

  • Самый простой способ компилировать вещи тогда выглядит примерно так:

    ~/mxe/usr/bin/i686-pc-mingw32-gfortran -c main.f95

    ~/mxe/usr/bin/i686-pc-mingw32-gfortran main.o -o outfile.exe

Конечно, вы можете выбрать что-то, кроме fortran, просто проконсультируйтесь с mxe / usr / bin, чтобы увидеть, как он называется.

3 голосов
/ 11 августа 2011

если у вас есть mingw32 и кросс-компилятор Gnu C работает для вас ... почему бы просто не получить кросс-компилятор Gnu Fortran тоже?

http://www.nber.org/sys-admin/mingw32-fortran-fedora.html

EXAMPLE apt-get install mingw32-gcc-fortran
1 голос
/ 11 августа 2011

Вы всегда можете загрузить и установить готовый компилятор из самого проекта MinGW (-w64):

Windows 64-bit: http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/rubenvb/4.6.2-1/ Windows 32-bit: http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/rubenvb/4.6.2-1/

Просто распакуйте куда-нибудь и добавьте каталог cross*/bin в PATH.

Я включаю (obj) c (++) и fortran.

0 голосов
/ 13 июня 2018

В Ubuntu 18.04 я использую

apt install gfortran-mingw-w64

Затем используйте компилятор x86_64-w64-mingw32-gfortran вместо gfortran.Если вы используете cmake, вы можете настроить компилятор из каталога сборки следующим образом:

FC=x86_64-w64-mingw32-gfortran cmake ..
...