1、下載go的zip文件。并且一定要把文件解壓到c:\go目錄下。

成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計、做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)鄢陵,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
2、配置windows的高級環(huán)境變量。包括:GOROOT、GOOS、GOBIN、GOARCH。并且在path變量里面把c:\go\bin加入。以便可以在命令行直接運行g(shù)o命令。
舉例:我的機(jī)器:
GOPATH= c:\go;c:\go\src;F:\workspace\goSample01;
GOBIN=c:\go\bin;F:\workspace\goSample01\bin;
其中,c:\go是go的安裝路徑;
F:\workspace\goSample01是我寫的go語言項目的工程目錄;
F:\workspace\goSample01\bin是go語言項目的工程目錄下的可執(zhí)行文件路徑;
3、在完成環(huán)境變量配置后,打開一個命令行窗口,直接輸入go,然后回車,看看是否出現(xiàn)go的幫助信息。如果出現(xiàn),那么go的基本環(huán)境就OK了。
注意:這個基本環(huán)境不包含開發(fā)工具,也不能直接編譯帶C代碼的go程序。
4、(可選)為了支持Import遠(yuǎn)程包,最好裝個gomingw。下載地址:。如果下的是壓縮包,請把它解壓到C盤。例如,C:\gowin-env。里面有個Console.bat是以后使用go get的環(huán)境。舉例:有個文件a.go,里面import(
"fmt"
"github.com/astaxie/beedb"
_ "github.com/ziutek/mymysql/godrv"
為了編譯該a.go文件,需要啟動Console.bat,然后在該命令行窗口,進(jìn)入c:\go\src目錄下,執(zhí)行g(shù)o getgithub.com/astaxie/beedb
Go get github.com/ziutek/mymysql/godrv .
Go會自動下載該遠(yuǎn)程包并編譯和安裝這些包。
配置goclipse(可選)
(如果不喜歡eclipse開發(fā)工具,請?zhí)^這個配置。)
1、下載并安裝goclipse插件。Goclipse是go語言for eclipse的插件,下載地址:
2、啟動eclipse并創(chuàng)建go項目。然后寫個最簡單的helloworld.go文件,并運行。代碼如下:
packagemainimport"fmt"func main(){ fmt.Printf("hello, world")}
配置gocode(可選)
如果不需要go語法輔助和eclipse里面的(按ALT+/)彈出go語言自動輔助功能,請?zhí)^這個配置。
1、下載gocode的zip文件,解壓后放在go的bin目錄下。
2、下載并安裝Git軟件。并且在path里面配置git的執(zhí)行路徑。例如c:\git\bin
3、在命令行執(zhí)行:go build .\gocode。如果一切正常,那么將會編譯生成一個gocode.exe文件在go的bin目錄下。如果編譯失敗,那么就轉(zhuǎn)第4步。
4、如果第3步直接編譯gocode源文件成功,那就直接到第5步。否則,就需要通過git下載gocode源文件,然后再編譯。在命令行執(zhí)行:go get -u github.com/nsf/gocode 。就會生成gocode.exe文件。
5、在goclipse插件里面指定gocode的路徑。就可以在elcipse里面調(diào)用gocode來幫助寫編碼了。
從開發(fā)工具這塊看,go語言還不夠成熟,開發(fā)工具都還不完善,有待改進(jìn)。
下載go-tour教程源代碼(可選)
Google有個在線運行g(shù)o語言的教程(),很不錯。支持在web上直接運行大部分的go程序,想了解這個教程的源代碼的朋友可以通過以下方式獲取。如果沒興趣,可以跳過這個步驟。
1、下載安裝Mercurial軟件。
2、在命令行下輸入:
hg clone
這個URL是我從google的go-tour源代碼的一個clone。作為測試用的。如果把http改成https協(xié)議,下載就會失敗。搞不懂。
編譯帶調(diào)用C代碼的go文件(可選)
1、為了在windows下編譯帶C代碼的go程序,你首先需要下載并安裝MinGW或者Cygwin。
2、首選安裝MinGW。在安裝MinGW之后,記得要把MinGW安裝目錄\bin路徑設(shè)置在path環(huán)境變量里面,以便能在dos窗口下直接調(diào)用gcc。
3、下載一個gowin-env。下載地址:gowin-env。下載后解壓到某個目錄下,例如:C:\gowin-env. 然后,編輯go-env.bat。配置相關(guān)的go參數(shù)。例如,我的配置是:
set GOARCH=386
set GOOS=windows
set GOROOT=c:\go
set GOBIN=%GOROOT%\bin
set GOPATH=%GOROOT%;F:\workspace\goSample01;
設(shè)置好go-env.bat后,就可以點擊Console.bat來啟動編譯和運行窗口。
4、編寫一個帶C代碼的go程序。例如,testc.go
5、編譯
例如:
go build -compiler gccgo test_c.go
運行調(diào)用C代碼的go文件(可選)
1、testc.go.
創(chuàng)建rand目錄,然后在rand里面創(chuàng)建testc.go. 代碼如下:
package rand
/*
//
#include stdio.h
*/
import "C"
func PrintHello() {
C.puts(C.CString("Hello, world\n"))
}
2、a.go
在rand下創(chuàng)建a.go.代碼如下:
package rand
import "fmt"
func SayHello(name string){
fmt.Println(name)
}
3、test_import.go
在rand的上一級創(chuàng)建test_import.go。代碼如下:
package main
import "./rand"
func main(){
rand.SayHello("tom")
rand.PrintHello()
}
4、運行test_import.go
go run test_import.go
在測試其它幾個C代碼的時候,發(fā)現(xiàn)windows版本的cgo還有些編譯問題,同樣的代碼轉(zhuǎn)移到蘋果的XCODE下就沒有問題。后來終于發(fā)現(xiàn)原因了,原來有些例子是unix平臺下的,而在windows平臺下,方法名和參數(shù)需要做調(diào)整。
例如:下面代碼在windows下編譯報一堆錯誤。
package rand
/*
#include stdlib.h
*/
import "C"
func Random() int {
return int(C.random())
}
func Seed(i int) {
C.srandom(C.uint(i))
}
這里需要把return int(C.random()) 修改為“return int(C.rand())”
C.srandom(C.uint(i))修改為“C.srand(C.uint(i))”編譯就OK了。
本教程介紹 Go 中多模塊工作區(qū)的基礎(chǔ)知識。使用多模塊工作區(qū),您可以告訴 Go 命令您正在同時在多個模塊中編寫代碼,并輕松地在這些模塊中構(gòu)建和運行代碼。
在本教程中,您將在共享的多模塊工作區(qū)中創(chuàng)建兩個模塊,對這些模塊進(jìn)行更改,并在構(gòu)建中查看這些更改的結(jié)果。
本教程需要 go1.18 或更高版本。使用go.dev/dl中的鏈接確保您已在 Go 1.18 或更高版本中安裝了 Go 。
首先,為您要編寫的代碼創(chuàng)建一個模塊。
1、打開命令提示符并切換到您的主目錄。
在 Linux 或 Mac 上:
在 Windows 上:
2、在命令提示符下,為您的代碼創(chuàng)建一個名為工作區(qū)的目錄。
3、初始化模塊
我們的示例將創(chuàng)建一個hello依賴于 golang.org/x/example 模塊的新模塊。
創(chuàng)建你好模塊:
使用 . 添加對 golang.org/x/example 模塊的依賴項go get。
在 hello 目錄下創(chuàng)建 hello.go,內(nèi)容如下:
現(xiàn)在,運行 hello 程序:
在這一步中,我們將創(chuàng)建一個go.work文件來指定模塊的工作區(qū)。
在workspace目錄中,運行:
該go work init命令告訴為包含目錄中模塊的工作空間go創(chuàng)建一個文件 。go.work./hello
該go命令生成一個go.work如下所示的文件:
該go.work文件的語法與go.mod相同。
該go指令告訴 Go 應(yīng)該使用哪個版本的 Go 來解釋文件。它類似于文件中的go指令go.mod 。
該use指令告訴 Go在進(jìn)行構(gòu)建時hello目錄中的模塊應(yīng)該是主模塊。
所以在模塊的任何子目錄中workspace都會被激活。
2、運行工作區(qū)目錄下的程序
在workspace目錄中,運行:
Go 命令包括工作區(qū)中的所有模塊作為主模塊。這允許我們在模塊中引用一個包,即使在模塊之外。在模塊或工作區(qū)之外運行g(shù)o run命令會導(dǎo)致錯誤,因為該go命令不知道要使用哪些模塊。
接下來,我們將golang.org/x/example模塊的本地副本添加到工作區(qū)。然后,我們將向stringutil包中添加一個新函數(shù),我們可以使用它來代替Reverse.
在這一步中,我們將下載包含該模塊的 Git 存儲庫的副本golang.org/x/example,將其添加到工作區(qū),然后向其中添加一個我們將從 hello 程序中使用的新函數(shù)。
1、克隆存儲庫
在工作區(qū)目錄中,運行g(shù)it命令來克隆存儲庫:
2、將模塊添加到工作區(qū)
該go work use命令將一個新模塊添加到 go.work 文件中。它現(xiàn)在看起來像這樣:
該模塊現(xiàn)在包括example.com/hello模塊和 `golang.org/x/example 模塊。
這將允許我們使用我們將在模塊副本中編寫的新代碼,而不是使用命令stringutil下載的模塊緩存中的模塊版本。
3、添加新功能。
我們將向golang.org/x/example/stringutil包中添加一個新函數(shù)以將字符串大寫。
將新文件夾添加到workspace/example/stringutil包含以下內(nèi)容的目錄:
4、修改hello程序以使用該功能。
修改workspace/hello/hello.go的內(nèi)容以包含以下內(nèi)容:
從工作區(qū)目錄,運行
Go 命令在go.work文件指定的hello目錄中查找命令行中指定的example.com/hello模塊 ,同樣使用go.work文件解析導(dǎo)入golang.org/x/example。
go.work可以用來代替添加replace 指令以跨多個模塊工作。
由于這兩個模塊在同一個工作區(qū)中,因此很容易在一個模塊中進(jìn)行更改并在另一個模塊中使用它。
現(xiàn)在,要正確發(fā)布這些模塊,我們需要發(fā)布golang.org/x/example 模塊,例如在v0.1.0. 這通常通過在模塊的版本控制存儲庫上標(biāo)記提交來完成。發(fā)布完成后,我們可以增加對 golang.org/x/example模塊的要求hello/go.mod:
這樣,該go命令可以正確解析工作區(qū)之外的模塊。
go語言作為google的一個主推語言,最近很多人都在研究,也花了一點時間對他的安裝進(jìn)行了測試,本人使用Sublime Text 2 + GoSublime + gocode
顧名思義首先是安裝Go,這里有很詳細(xì)的安裝說明, 或者(golang.org自己去找hosts),官方已經(jīng)支持Windows版本
下載解壓配置環(huán)境變量
“環(huán)境變量”(我的電腦-高級系統(tǒng)設(shè)置-環(huán)境變量),在系統(tǒng)變量的標(biāo)簽下,依次新建編輯如下幾個鍵值對:
(1). 新建 變量名:GOBIN 變量值 :c:\go\bin
(2). 新建 變量名:GOARCH 變量值:386
(3). 新建 變量名:GOOS 變量值:windows
(4). 新建 變量名: GOROOT 變量值:c:\go
(5). 編輯 Path 在Path的變量值的最后加上 %GOBIN%
1. 下載 Sublime Text 2,地址如下:
2. 解壓以后,雙擊 sublime_text,就可以使用 Sublime Text 2 了。
破解:
用 WinHex 編輯 sublime_text_backup.exe 文件, 跳到 000CBB70 那一行,將該行的 8A C3 修改為 B0 01 然后保存
破解注冊成功
3. 安裝 Package Control,在打開 Sublime Text 2以后,按下快捷鍵 Ctrl + `,打開命令窗行(具體在view——show Console),并回車:
import urllib2,os; pf=’Package Control.sublime-package’; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),’wb’).write(urllib2.urlopen(‘’+pf.replace(‘ ‘,’%20′)).read()); print ‘Please restart Sublime Text to finish installation’
4. 重啟Sublime Text 2后,就可以發(fā)現(xiàn)在 Preferences菜單下,多出一個菜單項 Package Control。
5.現(xiàn)在安裝GoSublime插件了,按住Ctrl+Shilft+p會彈出一個對話框輸入install回車彈出一個安裝包的對話框
同上輸入GoSublime選擇GoSublime回車
本機(jī)已經(jīng)安裝所以沒有出現(xiàn)選項,輸入Go build選中回車(這個屬于可選)
到此GoSublime安裝成功
6.下面安裝gocode,
首安裝 Git-1.7.11-preview20120710。
打開控制臺,輸入以下內(nèi)容:
go get github.com/nsf/gocode
go install github.com/nsf/gocode
go get github.com/DisposaBoy/MarGo
go install github.com/DisposaBoy/MarGo
也可以去github下載(要安裝google的git版本管理工具)
安裝完成后,我們可以在 go/bin 目錄下,發(fā)現(xiàn)多出了個 gocode 文件。(一定要放在bin目錄下)
7. 修改GoSublime配置:在 Preferences菜單下,找到Package Settings,然后找到 GoSublime,再往下找到 Settings – Default。再打開的文件中,添加如下配置,并保存:
"env": {"path":"c:/go/bin;" },
好了,到目前為止,開發(fā)環(huán)境搭建完成。
下面可以自由編程了。呵呵。
按下快捷鍵 Ctrl + b 界面下方會出現(xiàn)如下界面:
好了,到現(xiàn)在,開發(fā)環(huán)境就搭建完畢了。
如下是內(nèi)容我這邊沒有使用照樣可以使用:
sublime Text 2 編譯配置設(shè)置方法
tools-build system-new build system 新建一個配置文件 設(shè)置為
{
“cmd”: ["go", "run", "$file_name"],
“file_regex”: “^[ ]*File \”(…*?)\”, line ([0-9]*)”,
“working_dir”: “$file_path”,
“selector”: “source.go”
}
然后就可以用ctrl+b 編譯了
保存
插件名字是goclipse,而不是gclipse。
打開eclipse的Help"-"Install New Software ,點擊"Add"按鈕
在框中的"Name"中輸入"Goclipse"(不包括引號),
在框中的"Location"中輸入github相應(yīng)的地址,點擊OK,下面會自動pending出插件,一路next就可以了。
部署簡單。Go 編譯生成的是一個靜態(tài)可執(zhí)行文件,除了 glibc 外沒有其他外部依賴。這讓部署變得異常方便:目標(biāo)機(jī)器上只需要一個基礎(chǔ)的系統(tǒng)和必要的管理、監(jiān)控工具,完全不需要操心應(yīng)用所需的各種包、庫的依賴關(guān)系,大大減輕了維護(hù)的負(fù)擔(dān)。這和 Python 有著巨大的區(qū)別。由于歷史的原因,Python 的部署工具生態(tài)相當(dāng)混亂【比如 setuptools, distutils, pip, buildout 的不同適用場合以及兼容性問題】。官方 PyPI 源又經(jīng)常出問題,需要搭建私有鏡像,而維護(hù)這個鏡像又要花費不少時間和精力。
并發(fā)性好。Goroutine 和 channel 使得編寫高并發(fā)的服務(wù)端軟件變得相當(dāng)容易,很多情況下完全不需要考慮鎖機(jī)制以及由此帶來的各種問題。單個 Go 應(yīng)用也能有效的利用多個 CPU 核,并行執(zhí)行的性能好。這和 Python 也是天壤之比。多線程和多進(jìn)程的服務(wù)端程序編寫起來并不簡單,而且由于全局鎖 GIL 的原因,多線程的 Python 程序并不能有效利用多核,只能用多進(jìn)程的方式部署;如果用標(biāo)準(zhǔn)庫里的 multiprocessing 包又會對監(jiān)控和管理造成不少的挑戰(zhàn)【我們用的 supervisor 管理進(jìn)程,對 fork 支持不好】。部署 Python 應(yīng)用的時候通常是每個 CPU 核部署一個應(yīng)用,這會造成不少資源的浪費,比如假設(shè)某個 Python 應(yīng)用啟動后需要占用 100MB 內(nèi)存,而服務(wù)器有 32 個 CPU 核,那么留一個核給系統(tǒng)、運行 31 個應(yīng)用副本就要浪費 3GB 的內(nèi)存資源。
良好的語言設(shè)計。從學(xué)術(shù)的角度講 Go 語言其實非常平庸,不支持許多高級的語言特性;但從工程的角度講,Go 的設(shè)計是非常優(yōu)秀的:規(guī)范足夠簡單靈活,有其他語言基礎(chǔ)的程序員都能迅速上手。更重要的是 Go 自帶完善的工具鏈,大大提高了團(tuán)隊協(xié)作的一致性。比如 gofmt 自動排版 Go 代碼,很大程度上杜絕了不同人寫的代碼排版風(fēng)格不一致的問題。把編輯器配置成在編輯存檔的時候自動運行 gofmt,這樣在編寫代碼的時候可以隨意擺放位置,存檔的時候自動變成正確排版的代碼。此外還有 gofix, govet 等非常有用的工具。
執(zhí)行性能好。雖然不如 C 和 Java,但通常比原生 Python 應(yīng)用還是高一個數(shù)量級的,適合編寫一些瓶頸業(yè)務(wù)。內(nèi)存占用也非常省。
1、Sublime text
這個文本編輯器在編程界極為普遍,它并非一個完全成熟的IDE,但它具備了很多語言的擴(kuò)展插件,比如Pyhon、lua等,其中有一個插件GoSublime專門針對Go語言,提供了語法高亮、自動補(bǔ)全等功能,這些功能使Sublime Text稱為一個很實用的Go IDE。
2、IntelliJ
由Jetbrains提供,在Java開發(fā)者中更為流行,其自帶的Go插件支持語法高亮顯示、代碼補(bǔ)全、自動編譯以及子庫支持,這就使使用者可以很方便地將項目拆分成多個包,可以在一個單獨的IDE中瀏覽它。它有個很好用的功能,插件使用了突出顯示來顯示未使用的變量或包。
3、LiteIDE
目前也是一個專門針對Go的IDE了,功能很全面,具備語法高亮、自動補(bǔ)全、自動編譯、調(diào)試、包瀏覽及管理。調(diào)試器在后臺使用的gdb,這樣可以方便地打印變量值、查看當(dāng)前堆棧信息。
4、Intype
是僅Windows下支持的文本編輯器,具備有限的語法高亮支持和特定的高亮顯示設(shè)置。
5、Netbeans
Netbeans內(nèi)建支持了大量語言,同時具備Go插件,從而可以同創(chuàng)建正常項目一樣,創(chuàng)建Go源文件,除了語法高亮以外,其Go插件并不支持其他特殊功能,如何使用IDE編譯Go文件還不得而知。
6、Eclipse
最受歡迎的IDE,GoClipse插件在Eclipse中添加了IDE功能來支持Go,GoClipse提供了可配置的語法高亮顯示、自動文檔補(bǔ)全、自動編譯以及最重要的實驗調(diào)試支持。
7、TextMate
是一個Mac OS下的文本編輯器,可擴(kuò)展它以突出顯示Go代碼,并提供源代碼片段。
8、Komodo Edit
來自ActiveState的開源代碼編輯器,基于Monzilla 7.0且支持跨平臺,支持多種語言,但免費版的Komodo功能有限,它的golang插件komodo-go提供了基本的語法高亮、代碼補(bǔ)全功能。
分享名稱:go語言插件遷移,go語言調(diào)用大漠插件
當(dāng)前網(wǎng)址:http://chinadenli.net/article2/dsijjoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、、網(wǎng)站建設(shè)、外貿(mào)建站、商城網(wǎng)站、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)