2017-07-21 84 views
0

我已經創建了一個go腳本編譯,啓動,檢查狀態,並結束我創建的一個web服務(這也是去)。不過,我已經走到了路障。去安裝排除文件

隨着編譯功能,我運行以下命令:

go install . 

其中提供了以下錯誤:

./script.go:55: main redeclared in this block 
previous declaration at ./hello.go:8 

這是有道理的,因爲我有兩個不同的文件,既與主FUNC和主包。我也嘗試過移動腳本到另一個文件夾,然後更改命令跑到:

go install {path} 

其中{}路徑等於我想安裝路徑/編譯。然後我得到了以下錯誤:

exit status 1: can't load package: package /var/www/test.com/go: import "/var/www/test.com/go": cannot import absolute path 

所以在最後我還以爲只有一個解決辦法的(和我起來聽聽其他人是不是我的是不是最好的方法)。我的想法是排除腳本文件與其他文件編譯,但我不確定如何。

我做了一些研究,找不到一個簡單的方法來做到這一點(比如使用go install命令的--exclude標誌)。有人知道如何完成我想要實現的目標嗎?

謝謝。

+0

我覺得你試圖將文件分成不同的包是正確的做法。最新的錯誤告訴你'go'的構建系統無法加載指定的包,這是一個不同的錯誤(與你原來的問題沒有直接關係)。在不知道GOPATH值和項目目錄結構的情況下,很難提出解決方案來解決這個問題。 – putu

+1

如「無法導入絕對路徑」錯誤所示,go工具使用導入路徑,而不是絕對路徑。使用導入路徑運行'go install'。 – JimB

回答

0

你可以給hello.go一個不同的包名稱,這應該工作。或者我錯過了什麼?

問候 添

+0

我的意思是我真的不想要一個不需要的runetime 200行腳本來編譯。 – MrExporting24

+1

劇本是什麼?也許這有助於https://golang.org/pkg/go/build/#Build_Constraints排除文件應該是可能的。 – iamtim