Go言語によるGOROOT、GOPATH、GOBINの詳細説明

リリース: 2019-12-28 17:24:59
転載
3340 人が閲覧しました

Go言語によるGOROOT、GOPATH、GOBINの詳細説明

Go 言語は、自動ガベージ コレクション、豊富な組み込み型、複数の関数の戻り値、エラー処理、匿名関数を備えたまったく新しい静的型開発言語です。 、同時プログラミング、リフレクションなどの機能。

go コマンドは重要な環境変数に依存しています: $GOPATH
GOPATH では複数のディレクトリが許可されます。複数のディレクトリがある場合、区切り文字に注意してください。複数のディレクトリがある場合、Windows はセミコロンを使用します。

GOPATH が複数ある場合、go get で取得したパッケージはデフォルトで最初のディレクトリに保存されます。

$GOPATH ディレクトリには 3 つのサブディレクトリがあることが合意されています

1 、 src にはソース コード (例: .go .c .h .s など) が格納されます。 golang のデフォルト規則に従って、 go run、go install、およびその他のコマンドの現在の作業パス (つまり、 、このパスの下で上記のコマンドを実行します)。

2. pkg のコンパイル時に生成される中間ファイル (例: .a) golang がパッケージをコンパイルするとき

3. bin のコンパイル後に生成される実行可能ファイル (便宜上、このディレクトリを $PATH 変数に指定します。複数の gopath がある場合は、${GOPATH//://bin:}/bin を使用してすべての bin ディレクトリを追加します)

コード ディレクトリ構造の計画

GOPATH の下の src ディレクトリは、次の開発プログラムのメイン ディレクトリです。すべてのソース コードは、このディレクトリの下に配置されます。したがって、一般的に、私たちのアプローチは、1 つのディレクトリと 1 つのプロジェクトを持つことです。例: $ GOPATH/src/mymath は、mymath アプリケーション パッケージまたは実行可能アプリケーションを表します。これは、パッケージが main か other かによって異なります。main の場合、実行可能アプリケーションです。other の場合、アプリケーション パッケージです。 . このパッケージについては後ほど詳しく紹介します。

まず私の go 環境を見てください。 go env

C:\Users\Administrator>go env
set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=D:\project
set GORACE=
set GOROOT=D:\BaiduNetdiskDownload\go
set GOTOOLDIR=D:\BaiduNetdiskDownload\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
ログイン後にコピー

GOROOT

は実際には golang のインストール パスです。

golang をインストールすると、これは実際にはすでに存在します


GOBIN

最初に構造を確認します:

# #通常、プロジェクト ディレクトリで go build を実行します。例: Go言語によるGOROOT、GOPATH、GOBINの詳細説明

D:\project\src\go_dev\day1\package_example\main>go run main.go
400 100
ログイン後にコピー

ここで main.go をコンパイルする必要があります。golang は自動的に src に移動して hello ディレクトリを見つけます。 Packag本体のパッケージなので実行ファイルにコンパイルできるのですが、デフォルトではカレントディレクトリに実行ファイルが生成されます ディレクトリ指定はできるものの、やはりあまり便利とは言えない感じです

d:\project>go build go_dev/day1/package_example\main
ログイン後にコピー

したがって、他に 2 つの非常に優れたコマンドが使用されています: go get と go install

go get

go get は 2 つのことを行います:

1。リモートの場所からダウンロードするには、パッケージ

2 を使用します。 go install

go install

go install を実行すると、実行可能ファイルが生成され、それが配置されますもちろん、これには前提条件があります

コンパイルするのは実行ファイルです。通常のパッケージであれば、pkg ディレクトリにコンパイルされて生成されます。ファイルの末尾は です。 a

go について 開発ディレクトリ全体

go_project     // go_project为GOPATH目录
  -- bin
     -- myApp1  // 编译生成
     -- myApp2  // 编译生成
     -- myApp3  // 编译生成
  -- pkg
  -- src
     -- myApp1     // project1
        -- models
        -- controllers
        -- others
        -- main.go 
     -- myApp2     // project2
        -- models
        -- controllers
        -- others
        -- main.go 
     -- myApp3     // project3
        -- models
        -- controllers
        -- others
        -- main.go
ログイン後にコピー
Linux での go 環境の構成

1. まず go パッケージをダウンロードします。 Linux の場合: https://studygolang.com/ dl/golang/go1.9.2.linux-amd64.tar.gz

2.

tar -zxvf go1.9.2.linux をダウンロードした後-amd64.tar.gz ソース パッケージを解凍します

3. GOROOT である /usr/local/go に移動します

4. GOPATH および PATH 環境変数を設定します

export GOROOT=/usr/local/go #设置为go安装的路径
export GOPATH=$HOME/gocode #默认安装包的路径
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
ログイン後にコピー

Linux go env の表示

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/root/gocode"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build057487015=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"

go env
ログイン後にコピー
Golang の詳細については、golang チュートリアル

列に注目してください。

以上がGo言語によるGOROOT、GOPATH、GOBINの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
go
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート