天天看點

linux下編譯go檔案,Go linux下指令行編譯

首先我不推薦使用yum安裝, 因為本來也沒有太多麻煩的依賴,yum庫裡的go版本太低, 在fedora23上為1.5

是以直接在下面位址下載下傳了1.8版本

wget https://www.golangtc.com/static/go/1.8.3/go1.8.3.linux-amd64.tar.gz

然後解壓,把go檔案夾放在/go根路徑上

修改/etc/profile 添加path和GOROOT

# GO PATH

export PATH=$PATH:/go/bin:

# GO GOROOT

export GOROOT=/go

此時若使用go version指令可以得到

# go version

go version go1.8.3 linux/amd64

然後添加兩個檔案, 做一個helloworld 編譯并運作它

/gosource/helloworld/src/main/app.go

package main

import (

"fmt"

"speaker"

)

func main() {

fmt.Println(speaker.GetMessage())

}

/gosource/helloworld/src/speaker/say.go

package speaker

func GetMessage() string {

return "hello world"

}

下面需要注意的是, 因為我不想把每個project的依賴路徑都加入到GOPATH中, 是以我使用一個shell腳本來管理GOPATH

/gosource/helloworld/install.sh

#!/bin/bash

if [ ! -f install.sh ]; then

echo 'install must be run within its container folder' 1>&2

exit 1

fi

CURDIR=`pwd`

OLDGOPATH="$GOPATH"

export GOPATH="$CURDIR"

export GOBIN="$CURDIR/bin"

gofmt -w src

go install $1

export GOPATH="$OLDGOPATH"

unset GOBIN

echo 'finished'

這樣隻要每次我在/gosource/helloworld 都可以使用下面的代碼來編譯每個project

[[email protected] helloworld]# ./install.sh ./src/main/app.go

經過上面的步驟會得到一個

/gosource/helloworld/bin/app  的可執行檔案