Install Gfortran or Flang compiler on macOS Homebrew
Homebrew can install Fortran compilers including GCC and LLVM Flang.
Gfortran
Gfortran comes with GCC Homebrew package:
brew install gcc
As a complete C / C++ / Fortran compiler package, Gfortran doesn’t require additional flags or environment variables.
To use GCC compilers, source a script like:
p=$(brew --prefix gcc)/bin
v=14
export CC=$p/gcc-$v CXX=$p/g++-$v FC=$p/gfortran-$v
where v=14
is the major version number of the GCC compiler installed.
It may be necessary to set
SDKROOT
if the compiler fails to find the C++ standard library headers like cstring, cstddef, etc.
LLVM Flang
LLVM Flang is a separate package from the LLVM C/C++ compilers:
brew install flang
To use Flang compiler (works with Clang, AppleClang, GCC C-C++ compilers), source a script like:
export FC=$(brew --prefix flang)/bin/flang-new
To use LLVM Clang with Flang, source a script like:
p=$(brew --prefix llvm)/bin
export CC=$p/clang CXX=$p/clang++
export FC=$(brew --prefix flang)/bin/flang-new
Troubleshooting
When a new compiler version or macOS version or Xcode SDK is released, it may be necessary to adjust the environment variables or flags temporarily until Homebrew updates the package.
Some examples to try if needed:
-
LIBRARY_PATH for libSystem.tbd and libc++.tbd
export LIBRARY_PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib
-
LDFLAGS to the C++ standard library
export LDFLAGS=-lc++
SDKROOT may also be needed.