Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Versi bahasa go yang mana menyokong xp

Versi bahasa go yang mana menyokong xp

青灯夜游
青灯夜游asal
2022-12-14 19:02:246927semak imbas

Versi "1.10" bahasa go menyokong sistem xp. Golang1.10 ialah versi terakhir yang menyokong Windows XP/2003, jadi jika anda mahu program yang disusun Golang dijalankan pada WinXP/2003, anda perlu memuat turun Golang1.10 versi kemudian memerlukan sekurang-kurangnya sistem pengendalian Win7/2008.

Versi bahasa go yang mana menyokong xp

Persekitaran pengendalian tutorial ini: sistem linux7.3, GO versi 1.18, komputer Dell G3.

Versi dibangunkan bahasa Go


Pembangunan program bahasa Go bergantung terutamanya pada pengkompil golang. Penyusun dibahagikan kepada GC (Go Compiler) dan GCCGo. Pada masa ini, versi GC yang boleh dimuat turun secara rasmi daripada golang ialah GCCGo, yang diselenggara oleh organisasi GCC.

golang1.10 ialah versi terakhir yang menyokong windows xp/2003, jadi jika anda mahu program yang disusun golang dijalankan pada winxp/2003, anda perlu memuat turun golang1.10. Versi kemudian memerlukan sekurang-kurangnya sistem pengendalian Win7/2008.

Untuk sistem pengendalian Linux, versi kernel minimum yang disokong oleh golang ialah 2.6.23. Untuk Redhat, ini sekurang-kurangnya RHEL6.0 (2.6.32-71); untuk CentOS, sekurang-kurangnya CentOS6.0 (2.6.32-71 untuk Oracle Linux, sekurang-kurangnya OL5.6 (2.6 . 32-100.26.2.el5uek untuk Ubuntu, sekurang-kurangnya 10.04 untuk Suse Linux, sekurang-kurangnya SLE11 (Suse Linux Enterprise 11). [Cadangan berkaitan: Tutorial video Pergi, Pengajaran pengaturcaraan]

Untuk Unix, FreeBSD boleh menggunakan GC, tetapi untuk sistem pengendalian dengan pemproses bukan x86 , anda perlu gunakan pengkompil GCGo.

Keperluan untuk pembangunan bahasa Go


(1 ) Pengkompil

Alat arahan yang menyusun kod ke dalam fail boleh laku binari. Malah, ia sepatutnya lebih sesuai dipanggil "pembina" di sini. Kerana selepas kod ditulis, masukkan arahan "go build" untuk terus "compile" dan "link" kod ke dalam fail boleh laku.

Takrifan istilah "kompilasi" dan "pautan" berasal daripada bahasa C

Kod bahasa C disusun mengikut perbendaharaan kata tetap mengikut format tetap, yang mudah dan intuitif, dan mudah untuk pengaturcara mengenal pasti dan memahami Tetapi untuk CPU, kod bahasa C adalah bible, yang tidak diiktiraf sama sekali CPU hanya mengenali beberapa ratus arahan dalam bentuk binari. Ini memerlukan alat untuk menukar kod bahasa C kepada arahan binari yang boleh dikenali oleh CPU Alat ini adalah perisian khas yang dipanggil pengkompil.

Selepas kod bahasa C disusun, ia tidak menjana fail boleh laku akhir (fail .exe), tetapi menjana fail perantaraan (atau fail sementara) yang dipanggil fail objek (Fail Objek). Fail sasaran juga dalam bentuk binari, yang mempunyai format yang sama dengan fail boleh laku. Untuk Visual C++, akhiran fail objek ialah .obj untuk GCC, akhiran fail objek ialah .o.

Fail sasaran boleh menjadi fail boleh laku selepas dipautkan. Memandangkan format fail sasaran dan fail boleh laku adalah sama, mengapa kita perlu memautkannya semula. Tidakkah ia boleh digunakan secara langsung sebagai fail boleh laku?

Tidak boleh! Oleh kerana kompilasi hanya menukar kod yang kita tulis ke dalam bentuk binari, ia juga perlu digabungkan dengan komponen sistem (seperti perpustakaan standard, perpustakaan pautan dinamik, dll.), yang semuanya diperlukan untuk menjalankan program.

Pautan sebenarnya adalah proses "pembungkusan", yang menggabungkan semua fail sasaran dan komponen sistem dalam bentuk binari ke dalam fail boleh laku. Melengkapkan proses pemautan juga memerlukan perisian khas yang dipanggil penyambung.

(2) Pakej/komponen sambungan

Semasa proses penulisan atur cara, jika semua "program sokongan" atau "kelas alat" dicipta oleh pembangun Bermula dari calar, beban kerja akan menjadi besar. Oleh itu, untuk meningkatkan kecekapan pembangunan, dalam kebanyakan kes anda akan cuba mencari "pakej sambungan" atau "komponen" yang membantu pembangunan program. Golang dilengkapi dengan alat pengurusan pakejnya sendiri, jadi anda boleh memuat turun pakej pengembangan melalui arahan mengikut keperluan khusus semasa pembangunan.

(3) Penulisan dan penyahpepijatan kod

Anda boleh membangunkan kod melalui mana-mana editor teks, dan kemudian menyusun atur cara melalui pengkompil GC, atau sudah tentu melalui "go run" Arahan dijalankan terus. Jika anda perlu menyahpepijat atur cara, dalam kebanyakan kes cara yang paling selamat, paling selamat dan paling boleh dipercayai adalah dengan mengeluarkan log dalam atur cara. Jika anda mesti mempunyai satu titik penyahpepijatan, anda boleh menggunakan delve.

Persediaan persekitaran


(1) Muat turun dan nyahzip

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) Buat sambungan lembut

ln -s usr/local/go/bin/go usr/local/bin/go

(3) Contoh: Hello world

cd usr/local/src
mkdir -p go/helloworld
cd go/helloworld/
vim main.go

Masukkan yang berikut kod:

package main
import(
    "fmt"
)
func main(){
    fmt.Println("Hello world")
}

Simpan dan keluar, kemudian jalankan arahan berikut

go run main.go

Pada masa ini, sistem akan mempunyai output berikut:

Versi bahasa go yang mana menyokong xp

Bina


如果每次都通过go run去执行程序,则需要在发布程序时需要带上golang的运行时环境。这显然是不能满足要求的。可以将程序直接构建为可执行文件。

键入如下命令:

go build

此时,会在当前目录下产生一个helloworld的可执行文件

Versi bahasa go yang mana menyokong xp

运行这个文件,会得到与go run 相同的结果。

./helloworld

Versi bahasa go yang mana menyokong xp

使用扩展包


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会自动下载依赖包

Versi bahasa go yang mana menyokong xp

同时,生成了名为“mongodemo”的可执行文件

执行该文件,输出了mongodb中的查询结果

Versi bahasa go yang mana menyokong xp

更多编程相关知识,请访问:编程视频!!

Atas ialah kandungan terperinci Versi bahasa go yang mana menyokong xp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn