blob: 5395ae513e79fb6c0ef2de5d4d2cb39f6c3c084c [file] [log] [blame]
<!--{
"Title": "Compile and install the application",
"Path": "/doc/tutorial/compile-install"
}-->
<p>
In the last section, you'll learn a new <code>go</code> command. While the
<code>go run</code> command is a useful shortcut for compiling and running a
single-file program, it doesn't generate a binary executable you can easily
run again. If you want one of those, a good choice is to run the
<a
href="https://golang.org/cmd/go/#hdr-Compile_and_install_packages_and_dependencies"
><code>go install</code> command</a
>, which compiles your code and installs the resulting binary executable where
you can run it.
</p>
<aside class="Note">
<strong>Note:</strong> This topic is part of a multi-part tutorial that begins
with <a href="create-module.html">Create a Go module</a>.
</aside>
<ol>
<li>
At the command line, change to the directory that contains hello/hello.go.
</li>
<li>
Discover the Go install path, where the <code>go</code> command will install
the current package.
<p>
You can discover the install path by running the
<a href="https://golang.org/cmd/go/#hdr-List_packages_or_modules"
><code>go list</code> command</a
>, as in the following example:
</p>
<pre>
go list -f '{{.Target}}'
</pre
>
<p>
For example, the command's output might say
<code>/home/gopher/bin/hello</code>, meaning that binaries are installed
to /home/gopher/bin. This is the install directory you'll need in the next
step.
</p>
</li>
<li>
Add the Go install directory to your system's shell path.
<p>
That way, you'll be able to run your program's executable without
specifying where the executable is.
</p>
<ul>
<li>
On Linux or Mac, run the following command:
<pre>
export PATH=$PATH:/path/to/your/install/directory
</pre
>
</li>
<li>
On Windows, run the following command:
<pre>
set PATH=%PATH%;C:\path\to\your\install\directory
</pre
>
</li>
</ul>
<p>
As an alternative, if you already have a directory like
<code>$HOME/bin</code> in your shell path and you'd like to install your
Go programs there, you can change the install target by setting the GOBIN
variable using the
<a href="https://golang.org/cmd/go/#hdr-Print_Go_environment_information"
><code>go env</code> command</a
>:
</p>
<pre>
go env -w GOBIN=/path/to/your/bin
</pre
>
<p>
or
</p>
<pre>
go env -w GOBIN=C:\path\to\your\bin
</pre
>
</li>
<li>
Once you've updated the shell path, run the <code>go install</code> command
to compile and install the package.
<pre>
$ go install
</pre
>
</li>
<li>
Run your application by simply typing its name.
<pre>
$ hello
map[Darrin:Hail, Darrin! Well met! Gladys:Great to see you, Gladys! Samantha:Hail, Samantha! Well met!]
</pre
>
</li>
</ol>
<p>
That wraps up this Go tutorial! For a next step that introduces many more of
Go features, check out the
<a href="https://tour.golang.org/welcome/1">Tour of Go</a>.
</p>
<p class="Navigation">
<a class="Navigation-prev" href="add-a-test.html">&lt; Add a test</a>
</p>