开发者

How can I setup linux to compile FORTRAN code into windows binaries?

开发者 https://www.devze.com 2023-03-26 23:09 出处:网络
I\'m working on a FORTRAN project and I would like to build all of the binaries that I want to maintain on a linux machine that is d开发者_如何转开发edicated for automated builds. I have successfully

I'm working on a FORTRAN project and I would like to build all of the binaries that I want to maintain on a linux machine that is d开发者_如何转开发edicated for automated builds. I have successfully used mingw to build 32-bit and 64-bit binaries from C source for windows machines on the linux machine with the following packages on Ubuntu.

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

Then I run the following commands to actually compile:

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

However, the mingw packages that I've obtained via apt-get do not include FORTRAN compilers.

Anybody got any ideas on what I can do?


if you got mingw32 and the Gnu C cross compiler is working for you ... when why not just get the Gnu Fortran cross compiler, too?

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

EXAMPLE apt-get install mingw32-gcc-fortran


I know this is an old thread but a few things seem to have changed and people might still be interested in the topic.

Problem: I want to use my linux machine to compile some code and create a .exe that I can send to people using Windows.

Solution: Essentially here: http ://mxe.cc/

What I did:

  • Check to see if your system has all the software you need here
  • run

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

It will download a few small things and create the directory "mxe" (probably in your home folder)

  • cd into that mxe directory and run "make". HOWEVER: this would take hours and take up a few GB on your hard drive so instead run something like

    make mpfr eigen opencsg cgal qt

For more ideas on how to shorten that all see this or the mxe tutorial or somewhere else ;)

  • The easiest way to compile stuff then seems to be something like:

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

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

Of course you can chose something other than fortran, just consult the mxe/usr/bin to see what its called.


You can always download and install a prebuilt compiler from the MinGW(-w64) project itself:

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/

Just unpack somewhere and add the cross*/bin directory to PATH.

I include (obj)c(++) and fortran.


On Ubuntu 18.04 I use

apt install gfortran-mingw-w64

Then use the compiler x86_64-w64-mingw32-gfortran in place of gfortran. If you're using cmake, you can configure the compiler from the build directory like so:

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

精彩评论

暂无评论...
验证码 换一张
取 消