中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

go語言支持xp的版本是什么

發布時間:2022-12-15 09:40:39 來源:億速云 閱讀:318 作者:iii 欄目:編程語言

這篇“go語言支持xp的版本是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“go語言支持xp的版本是什么”文章吧。

go語言的“1.10”版本支持xp系統。golang1.10是最后支持windows xp/2003的版本,因此如果想要golang編譯的程序可以在winxp/2003上運行,需要下載golang1.10;之后的版本則最低要求Win7/2008操作系統。

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-100.26.2.el5uek);對于Ubuntu而言,至少是10.04;對于Suse Linux而言,至少是SLE11(Suse Linux Enterprise 11)。

對于Unix而言,FreeBSD可以采用GC,但對于非x86處理器的操作系統而言,則需要采用GCCGo編譯器。

進行Go語言開發的要素

(1)編譯器

將代碼編譯為二進制可執行文件的命令工具。其實這里應該叫“構建器”更為合適。因為代碼編寫完成后,輸入“go build”命令,可以直接將代碼“編譯”并“鏈接”為可執行文件。

術語“編譯”與“鏈接”的定義來自于C語言

C語言代碼由固定的詞匯按照固定的格式組織起來,簡單直觀,程序員容易識別和理解,但是對于CPU,C語言代碼就是天書,根本不認識,CPU只認識幾百個二進制形式的指令。這就需要一個工具,將C語言代碼轉換成CPU能夠識別的二進制指令,這個工具是一個特殊的軟件,叫做編譯器(Compiler)。

C語言代碼經過編譯以后,并沒有生成最終的可執行文件(.exe 文件),而是生成了一種叫做目標文件(Object File)的中間文件(或者說臨時文件)。目標文件也是二進制形式的,它和可執行文件的格式是一樣的。對于 Visual C++,目標文件的后綴是.obj;對于 GCC,目標文件的后綴是.o。

目標文件經過鏈接(Link)以后才能變成可執行文件。既然目標文件和可執行文件的格式是一樣的,為什么還要再鏈接一次呢,直接作為可執行文件不行嗎?

不行的!因為編譯只是將我們自己寫的代碼變成了二進制形式,它還需要和系統組件(比如標準庫、動態鏈接庫等)結合起來,這些組件都是程序運行所必須的。

鏈接(Link)其實就是一個“打包”的過程,它將所有二進制形式的目標文件和系統組件組合成一個可執行文件。完成鏈接的過程也需要一個特殊的軟件,叫做鏈接器(Linker)。

(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

(3)示例:Hello world

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語言支持xp的版本是什么

構建

如果每次都通過go run去執行程序,則需要在發布程序時需要帶上golang的運行時環境。這顯然是不能滿足要求的。可以將程序直接構建為可執行文件。

鍵入如下命令:

go build

此時,會在當前目錄下產生一個helloworld的可執行文件

go語言支持xp的版本是什么

運行這個文件,會得到與go run 相同的結果。

./helloworld

go語言支持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會自動下載依賴包

go語言支持xp的版本是什么

同時,生成了名為“mongodemo”的可執行文件

執行該文件,輸出了mongodb中的查詢結果

go語言支持xp的版本是什么

以上就是關于“go語言支持xp的版本是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

靖安县| 根河市| 九台市| 湄潭县| 建阳市| 侯马市| 云南省| 墨竹工卡县| 青神县| 拉萨市| 洛宁县| 临海市| 武穴市| 穆棱市| 古浪县| 南京市| 洪湖市| 苏尼特左旗| 方正县| 慈溪市| 梅河口市| 德化县| 临邑县| 安丘市| 宽甸| 临洮县| 和田县| 张家川| 克山县| 刚察县| 正安县| 绩溪县| 阿克陶县| 木里| 宜昌市| 哈巴河县| 平阳县| 东台市| 大安市| 嘉峪关市| 淅川县|