Chapter 2. The Go compiler


The Go compiler is a build tool and dependency manager for the Go programming language. It offers error checking and optimization of your code.

2.1. Prerequisites

2.2. Setting up a Go workspace

To compile a Go program, you need to set up a Go workspace.

Procedure

  1. Create a workspace directory as a subdirectory of $GOPATH/src.

    A common choice is $HOME/go.

  2. Place your source files into your workspace directory.
  3. Set the location of your workspace directory as an environment variable to the $HOME/.bashrc file by running:

    $ echo 'export GOPATH=<workspace_dir>' >> $HOME/.bashrc
    $ source $HOME/.bashrc
    Copy to Clipboard Toggle word wrap

    Replace <workspace_dir> with the name of your workspace directory.

2.3. Compiling a Go program

You can compile your Go program using the Go compiler. The Go compiler creates an executable binary file as a result of compiling.

Prerequisites

Procedure

In your project directory, run:

  • On Red Hat Enterprise Linux 7:

    $ scl enable go-toolset-1.17 'go build <output_file>'
    Copy to Clipboard Toggle word wrap
    • Replace <output_file< with the desired name of your output file and <go_main_package> with the name of your main package.
  • On Red Hat Enterprise Linux 8:

    $ go build <output_file>
    Copy to Clipboard Toggle word wrap
    • Replace <output_file> with the desired name of your output file and <go_main_package> with the name of your main package.
  • On Red Hat Enterprise Linux 9:

    $ go build <output_file>
    Copy to Clipboard Toggle word wrap
    • Replace <output_file> with the desired name of your output file and <go_main_package> with the name of your main package.

2.4. Running a Go program

The Go compiler creates an executable binary file as a result of compiling. Complete the following steps to execute this file and run your program.

Prerequisites

Procedure

To run your program, run in the directory containing the executable file:

$ ./<file_name>
Copy to Clipboard Toggle word wrap
  • Replace <file_name> with the name of your executable file.

2.5. Installing compiled Go projects

You can install already compiled Go projects to use their executable files and libraries in further Go projects. After installation, the executable files and libraries of the project are copied to according directories in the Go workspace. Its dependencies are installed as well.

Prerequisites

Procedure

To install a Go project, run:

  • On Red Hat Enterprise Linux 7:

    $ scl enable go-toolset-1.17 'go install <go_project>'
    Copy to Clipboard Toggle word wrap
    • Replace <go_project> with the name of the Go project you want to install.
  • On Red Hat Enterprise Linux 8:

    $ go install <go_project>
    Copy to Clipboard Toggle word wrap
    • Replace <go_project> with the name of the Go project you want to install.
  • On Red Hat Enterprise Linux 9:

    $ go install <go_project>
    Copy to Clipboard Toggle word wrap
    • Replace <go_project> with the name of the Go project you want to install.

2.6. Downloading and installing Go projects

You can download and install third-party Go projects from online resources to use their executable files and libraries in further Go projects. After installation, the executable files and libraries of the project are copied to according directories in the Go workspace. Its dependencies are installed as well.

Prerequisites

Procedure

  • To download and install a Go project, run:

    • On Red Hat Enterprise Linux 7:

      $ scl enable go-toolset-1.17 'go get <third_party_go_project>'
      Copy to Clipboard Toggle word wrap
      • Replace <third_party_go_project> with the name of the project you want to download.
    • On Red Hat Enterprise Linux 8:

      $ go get <third_party_go_project>
      Copy to Clipboard Toggle word wrap
      • Replace <third_party_go_project> with the name of the project you want to download.
    • On Red Hat Enterprise Linux 9:

      $ go get <third_party_go_project>
      Copy to Clipboard Toggle word wrap
      • Replace <third_party_go_project> with the name of the project you want to download.
  • For information on possible values of third-party projects, run:

    • On Red Hat Enterprise Linux 7:

      $ scl enable go-toolset-1.17 'go help importpath'
      Copy to Clipboard Toggle word wrap
    • On Red Hat Enterprise Linux 8:

      $ go help importpath
      Copy to Clipboard Toggle word wrap
    • On Red Hat Enterprise Linux 9:

      $ go help importpath
      Copy to Clipboard Toggle word wrap
Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat