外國(guó)風(fēng)格網(wǎng)站建設(shè)電話(huà)搜索引擎排名google
創(chuàng)建一個(gè)Go項(xiàng)目
?1.創(chuàng)建項(xiàng)目
package mainfunc main() {println("你好啊,簡(jiǎn)單點(diǎn)了!")
}
?
如果是本地的話(huà)可以采用go run 項(xiàng)目名的方式。
可以采用go run --work 項(xiàng)目名的方式,此時(shí)可以展示日志信息。
如果是只編譯的話(huà) go build 項(xiàng)目名,會(huì)生成一個(gè)exe的可執(zhí)行文件,go run 是既編譯了又運(yùn)行了。
2.交叉編譯
交叉編譯可以實(shí)現(xiàn)跨平臺(tái)的功能
在日常工作中,線(xiàn)上機(jī)器一般是Linux。開(kāi)發(fā)機(jī)有可能是Windows或者是MacOs。這時(shí)我們build
的代碼在線(xiàn)上機(jī)可能就沒(méi)辦法運(yùn)行了。go支持交叉編譯, 在一個(gè)平臺(tái)上生成然后再另外一個(gè)平臺(tái)去執(zhí)行。具體命令如下:
# 要去linux下執(zhí)行
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
# 要去Mac下執(zhí)行
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
# 要去win下執(zhí)行
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
?參數(shù)值說(shuō)明:
- CGO_ENABLED?: CGO 表示golang中的工具,CGO_ENABLED 表示CGO禁用,交叉編譯中不能使用CGO的
- GOOS?: 目標(biāo)平臺(tái)
- mac 對(duì)應(yīng)?darwin
- linux 對(duì)應(yīng)?linux
- windows 對(duì)應(yīng)?windows
- GOARCH?:目標(biāo)平臺(tái)的體系架構(gòu)【386,amd64,arm】, 目前市面上的個(gè)人電腦一般都是amd64架構(gòu)的
- 386 也稱(chēng) x86 對(duì)應(yīng) 32位操作系統(tǒng)
- amd64 也稱(chēng) x64 對(duì)應(yīng) 64位操作系統(tǒng)
- arm 這種架構(gòu)一般用于嵌入式開(kāi)發(fā)。 比如 Android , IOS , Win mobile , TIZEN 等