go 言語の「1.10」バージョンは XP システムをサポートします。 Golang1.10 は Windows XP/2003 をサポートする最後のバージョンであるため、Golang でコンパイルされたプログラムを WinXP/2003 上で実行するには、golang1.10 をダウンロードする必要があります。それ以降のバージョンには、少なくとも Win7/2008 オペレーティング システムが必要です。
このチュートリアルの動作環境: linux7.3 システム、GO バージョン 1.18、Dell G3 コンピューター。
Go 言語開発バージョン
Go 言語プログラムの開発は、主に golang コンパイラーに依存します。コンパイラは GC (Go Compiler) と GCCGo に分かれます。現在、ダウンロードできる golang の公式バージョンは GC バージョンですが、GCCGo は GCC 組織によって保守されています。
golang1.10 は Windows XP/2003 をサポートする最後のバージョンなので、golang でコンパイルされたプログラムを winxp/2003 上で実行したい場合は、golang1.10 をダウンロードする必要があります。それ以降のバージョンでは、少なくとも Win7/2008 オペレーティング システムが必要です。
Linux オペレーティング システムの場合、golang でサポートされる最小カーネル バージョンは 2.6.23 です。 Redhat の場合は RHEL6.0 (2.6.32-71) 以上、CentOS の場合は CentOS6.0 (2.6.32-71) 以上、Oracle Linux の場合は OL5.6 (2.6.32-71) 以上です。 32-100.26.2.el5uek)、Ubuntu の場合は少なくとも 10.04、Suse Linux の場合は少なくとも SLE11 (Suse Linux Enterprise 11)。 [関連する推奨事項: Go ビデオ チュートリアル 、プログラミング教育 ]
Unix の場合、FreeBSD は GC を使用できますが、x86 以外のプロセッサを搭載したオペレーティング システムの場合は、 GCCGo コンパイラを使用します。
Go 言語開発の要素
(1 )コンパイラ
コードをバイナリ実行可能ファイルにコンパイルするコマンド ツール。実際、ここでは「ビルダー」と呼ぶ方が適切です。コードを記述した後、「go build」コマンドを入力して、コードを実行可能ファイルに直接「コンパイル」および「リンク」するためです。
「コンパイル」と「リンク」という用語の定義は C 言語から来ています
C 言語のコードは、固定の形式に従って固定の語彙によって編成されており、シンプルかつ直観的です。 C 言語コードはプログラマにとっては簡単に識別して理解できますが、CPU にとって C 言語コードはバイブルですが、まったく認識されず、CPU はバイナリ形式で数百の命令しか認識しません。そのためには、C言語のコードをCPUが認識できるバイナリ命令に変換するツール、つまりコンパイラと呼ばれる専用のソフトウェアが必要です。
C 言語コードのコンパイル後、最終的な実行可能ファイル (.exe ファイル) は生成されませんが、オブジェクト ファイル (オブジェクト ファイル) と呼ばれる中間ファイル (または一時ファイル) が生成されます。ターゲット ファイルもバイナリ形式であり、実行可能ファイルと同じ形式です。 Visual C の場合、オブジェクト ファイルの接尾辞は .obj であり、GCC の場合、オブジェクト ファイルの接尾辞は .o です。
ターゲット ファイルは、リンク後に実行可能ファイルになる場合があります。対象ファイルと実行ファイルの形式が同じなのに、なぜ再度リンクする必要があるのでしょうか? そのまま実行ファイルとして使用することはできないのでしょうか? ######とんでもない!コンパイルでは作成したコードをバイナリ形式に変換するだけなので、プログラムの実行に必要なシステム コンポーネント (標準ライブラリ、ダイナミック リンク ライブラリなど) と組み合わせる必要もあります。
Link (リンク) は実際には「パッケージ化」プロセスであり、すべてのバイナリ形式のターゲット ファイルとシステム コンポーネントを実行可能ファイルに結合します。リンクプロセスを完了するには、リンカーと呼ばれる特別なソフトウェアも必要です。
(2) 拡張パッケージ/コンポーネントプログラム作成の過程で、すべての「サポートプログラム」または「ツールクラス」が開発者によって開始された場合スクラッチの場合、作業量は膨大になります。そのため、開発効率を向上させるために、プログラム開発を支援する「拡張パッケージ」や「コンポーネント」を探すことになることが多いです。 Golang には独自のパッケージ管理ツールが付属しているため、開発中の特定のニーズに応じてコマンドを通じて拡張パッケージをダウンロードできます。
(3) コードの作成とデバッグ任意のテキスト エディターを使用してコードを開発し、その後 GC コンパイラー、またはもちろん "go" を使用してプログラムをコンパイルできます。 run" コマンドは直接実行されます。プログラムをデバッグする必要がある場合、ほとんどの場合、最も安全で信頼できる方法は、プログラム内でログを出力することです。単一のデバッグポイントが必要な場合は、delve を使用できます。
#環境設定(1) ダウンロードと解凍
cd usr/local
wget https://golang.google.cn/dl/go1.15.6.linux-amd64.tar.gz
tar xf go1.15.6.linux-amd64.tar.gz
cd go
(2) ソフト接続を作成します
ln -s usr/local/go/bin/go usr/local/bin/go
cd usr/local/src mkdir -p go/helloworld cd go/helloworld/ vim main.go
package main import( "fmt" ) func main(){ fmt.Println("Hello world") }
go run main.go
##建てる#### #####
如果每次都通过go run去执行程序,则需要在发布程序时需要带上golang的运行时环境。这显然是不能满足要求的。可以将程序直接构建为可执行文件。
键入如下命令:
go build
此时,会在当前目录下产生一个helloworld的可执行文件
运行这个文件,会得到与go run 相同的结果。
./helloworld
使用扩展包
golang的扩展包有多种不同的管理方式。比如传统的 go get 方式以及新推出对的go module方式。
对于go get方式,由于某些特殊原因,部分官方包无法从golang.org下载,因此需要采取手动下载与go get相结合的方式。
对于go module方式,由于可以采用goproxy代理的方式获取golang.org的基础包,因此完美解决了国内golang开发的难题。
然而go module只有1.13版本之后的golang才能支持。而1.13是不支持winxp/2003的。并且对于go get与go module而言,有关代码在引包的时候,写法多少有些不同。因此如果要开发兼容低版本操作系统的程序,仍然建议采用go get进行包管理。
这里只介绍通过go module管理包的方式
以读取mongodb数据为例,介绍如何使用go module引入mongodb客户端扩展包,并读取数据。
设置goproxy代理
go env -w GOPROXY=https://goproxy.cn,direct
创建项目目录,并初始化
mkdir -p go/mongodemo cd go/mongodemo/ go mod init mongodemo
此时,会在mongodemo目录下生成go.mod文件
然后编辑main.go,输入如下代码:
package main import ( "fmt" "log" "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" ) type cfg_host struct { Host string Cfg_data string } func main() { user := "用户名" password := "密码" port := "端口" ip := "localhost" url := fmt.Sprintf("mongodb://%s:%s@%s:%s",user,password,ip,port) session, err := mgo.Dial(url) if err != nil { panic(err) } defer session.Close() Optional. Switch the session to a monotonic behavior. session.SetMode(mgo.Monotonic, true) c := session.DB("db").C("cfg_hosts") var cfgs []cfg_host err = c.Find(bson.M{}).All(&cfgs) if err != nil { log.Fatal(err) } for _,item := range cfgs { fmt.Printf("%s\n",item.Host) fmt.Printf("%s\n",item.Cfg_data) } }
构建
go build
此时,go module
会自动下载依赖包
同时,生成了名为“mongodemo”的可执行文件
执行该文件,输出了mongodb中的查询结果
更多编程相关知识,请访问:编程视频!!
以上がXPをサポートするGo言語のバージョンはどれですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。