Jump to content

Fortran: Difference between revisions

From NixOS Wiki
Simplify setup, add example flake
Pigs (talk | contribs)
m Add category languages
 
Line 1: Line 1:
The Fortran front-end for gcc can be enabled by adding <code>pkgs.gfortran</code> to {{Nixos:option|environment.systemPackages}}.
The Fortran front-end for gcc can be enabled by adding <code>pkgs.gfortran</code> to {{Nixos:option|environment.systemPackages}}.


If both <code>gcc</code> and <code>gfortran</code> are included, the build may fail with an error of the form: "collision between gfortran-wrapper/bin/gcc and gcc-wrapper/bin/gcc".
If both <code>gcc</code> and <code>gfortran</code> are included, the build may fail with an error of the form: <code>collision between gfortran-wrapper/bin/gcc and gcc-wrapper/bin/gcc</code>.


An example [[Flakes|nix flake]]:
An example [[Flakes|nix flake]]:
Line 23: Line 23:


Run <code>nix develop</code> to enter the nix shell, then compile with <code>gfortran myfile.f</code>.
Run <code>nix develop</code> to enter the nix shell, then compile with <code>gfortran myfile.f</code>.
[[Category:Languages]]

Latest revision as of 05:17, 1 June 2025

The Fortran front-end for gcc can be enabled by adding pkgs.gfortran to environment.systemPackages.

If both gcc and gfortran are included, the build may fail with an error of the form: collision between gfortran-wrapper/bin/gcc and gcc-wrapper/bin/gcc.

An example nix flake:

{
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";

  outputs = {nixpkgs, ...}: let
    system = "x86_64-linux";
    pkgs = nixpkgs.legacyPackages.${system};
  in {
    devShells.${system}.default = pkgs.mkShell {
      packages = with pkgs; [
        gfortran
      ];
    };
  };
}

Run nix develop to enter the nix shell, then compile with gfortran myfile.f.