Die Version „1.10“ der Go-Sprache unterstützt das XP-System. Golang1.10 ist die letzte Version, die Windows XP/2003 unterstützt. Wenn Sie also möchten, dass Golang-kompilierte Programme unter WinXP/2003 laufen, müssen Sie Golang1.10 herunterladen; spätere Versionen erfordern mindestens das Betriebssystem Win7/2008.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, GO Version 1.18, Dell G3-Computer.
Entwickelte Go-Sprachversion
Die Entwicklung von Go-Sprachprogrammen basiert hauptsächlich auf dem Golang-Compiler. Compiler werden in GC (Go Compiler) und GCCGo unterteilt. Derzeit ist die offizielle Version von Golang, die heruntergeladen werden kann, die GC-Version, während GCCGo von der GCC-Organisation verwaltet wird.
golang1.10 ist die letzte Version, die Windows XP/2003 unterstützt. Wenn Sie also möchten, dass mit Golang kompilierte Programme unter WinXP/2003 ausgeführt werden, müssen Sie golang1.10 herunterladen. Spätere Versionen erfordern mindestens das Betriebssystem Win7/2008.
Für Linux-Betriebssysteme ist die von Golang unterstützte Mindestkernelversion 2.6.23. Für Redhat ist dies mindestens RHEL6.0 (2.6.32-71); für CentOS ist es mindestens CentOS6.0 (2.6.32-71); für Oracle Linux ist es mindestens OL5.6 (2.6). 32-100.26.2.el5uek); für Ubuntu mindestens 10.04; für Suse Linux mindestens SLE11 (Suse Linux Enterprise 11). [Verwandte Empfehlungen: Go-Video-Tutorial, Programmierunterricht]
Für Unix kann FreeBSD GC verwenden, aber für Betriebssysteme mit Nicht-x86-Prozessoren müssen Sie den GCCGo-Compiler verwenden.
Elements for Go-Sprachentwicklung
(1) Compiler
Ein Befehlstool, das Code in eine binäre ausführbare Datei kompiliert. Tatsächlich sollte es hier treffender als „Builder“ bezeichnet werden. Denn nachdem der Code geschrieben wurde, geben Sie den Befehl „go build“ ein, um den Code direkt zu „kompilieren“ und in eine ausführbare Datei zu „verknüpfen“.
Die Definitionen der Begriffe „Kompilierung“ und „Link“ stammen aus der C-Sprache.
Der C-Sprachcode ist nach einem festen Vokabular in einem festen Format organisiert. Er ist einfach und intuitiv und für Programmierer leicht zu erkennen und zu verstehen. Für die CPU ist der C-Sprachcode jedoch unbekannt. Die CPU kennt nur ein paar hundert Anweisungen in Binärform. Dazu ist ein Tool erforderlich, um C-Sprachcode in binäre Anweisungen umzuwandeln, die die CPU erkennen kann. Bei diesem Tool handelt es sich um eine spezielle Software, die Compiler genannt wird.
Nachdem der C-Sprachcode kompiliert wurde, wird nicht die endgültige ausführbare Datei (.exe-Datei) generiert, sondern eine Zwischendatei (oder temporäre Datei), die als Objektdatei (Objektdatei) bezeichnet wird. Die Zieldatei liegt ebenfalls im Binärformat vor, das dasselbe Format wie die ausführbare Datei hat. Für Visual C++ lautet das Objektdateisuffix .obj; für GCC lautet das Objektdateisuffix .o.
Die Zieldatei kann nach der Verknüpfung zu einer ausführbaren Datei werden. Da das Format der Zieldatei und der ausführbaren Datei identisch ist, warum müssen wir sie erneut verknüpfen? Kann sie nicht direkt als ausführbare Datei verwendet werden?
Auf keinen Fall! Da durch die Kompilierung der von uns geschriebene Code nur in Binärform umgewandelt wird, muss er auch mit Systemkomponenten (z. B. Standardbibliotheken, dynamischen Linkbibliotheken usw.) kombiniert werden, die alle für die Programmausführung erforderlich sind.
Link ist eigentlich ein „Verpackungsprozess“, der alle Zieldateien und Systemkomponenten in binärer Form in einer ausführbaren Datei zusammenfasst. Um den Verknüpfungsprozess abzuschließen, ist außerdem eine spezielle Software namens Linker erforderlich.
(2) Erweiterungspakete/Komponenten
Wenn beim Programmschreiben alle „Unterstützungsprogramme“ oder „Toolklassen“ von Grund auf von Entwicklern implementiert werden, wird der Arbeitsaufwand sehr groß. Um die Entwicklungseffizienz zu verbessern, werden Sie daher in den meisten Fällen versuchen, „Erweiterungspakete“ oder „Komponenten“ zu finden, die die Programmentwicklung unterstützen. Golang verfügt über ein eigenes Paketverwaltungstool, sodass Sie Erweiterungspakete über Befehle entsprechend den spezifischen Anforderungen während der Entwicklung herunterladen können.
(3) Code schreiben und debuggen
Sie können Code mit jedem Texteditor entwickeln und das Programm dann mit dem GC-Compiler kompilieren. Natürlich können Sie es auch direkt über den Befehl „go run“ ausführen. Wenn Sie ein Programm debuggen müssen, ist die Ausgabe von Protokollen im Programm in den meisten Fällen die sicherste und vertrauenswürdigste Methode. Wenn Sie einen einzigen Debugpunkt benötigen, können Sie delve verwenden. (1) Herunterladen und entpacken
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
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
Build
如果每次都通过go run去执行程序,则需要在发布程序时需要带上golang的运行时环境。这显然是不能满足要求的。可以将程序直接构建为可执行文件。 键入如下命令: 此时,会在当前目录下产生一个helloworld的可执行文件 运行这个文件,会得到与go run 相同的结果。 使用扩展包 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代理 创建项目目录,并初始化 此时,会在mongodemo目录下生成go.mod文件 然后编辑main.go,输入如下代码: 构建go build
./helloworld
go env -w GOPROXY=https://goproxy.cn,direct
mkdir -p go/mongodemo
cd go/mongodemo/
go mod init mongodemo
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中的查询结果
更多编程相关知识,请访问:编程视频!!
Das obige ist der detaillierte Inhalt vonWelche Version der Go-Sprache unterstützt XP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!