我想在Go中做一個簡單的計算器。我正在設計它,以便我可以首先構建命令行界面,並在GUI界面中輕鬆交換。項目位置是$GOPATH/src/gocalc
(以下所有路徑均與項目位置相關)。命令行界面邏輯存儲在文件gocalc.go
中。計算器邏輯存儲在文件calcfns/calcfns.go
和operations/operations.go
中。所有的文件具有相同的到其的文件名(沒有擴展)包名以外的主程序,gocalc.go
,這是在通過import "gocalc/operations"
的package main
建築包裝結構與兒童/子包裝
calcfns.go
operations.go
進口; gocalc.go
進口calcfns.go
通過import "gocalc/calcfns"
總結:
$GOPATH/src/gocalc/
gocalc.go
package main
import "gocalc/calcfns"
calcfns/
calcfns.go
package calcfns
import "gocalc/operations"
operations/
operations.go
package operations
當我嘗試go build operations
(從項目目錄),我得到的迴應:can't load package: package operations: import "operations": cannot find package
當我嘗試go build gocalc/operations
,我得到can't load package: package gocalc/operations: import "gocalc/operations": cannot find package
當我嘗試go build operations/operations.go
,它編寫得很好
當我試圖go build calcfns
或go build gocalc/calcfns
,我得到can't load package...
消息,類似於操作中的消息;然而,當我嘗試建立calcfns/calcfns.go
它扼流圈import語句:import "gocalc/operations": cannot find package
最後,當我嘗試go build .
從項目目錄,它悶死了類似於前一段:import "gocalc/calcfns": cannot find package
我應該如何架構我的孩子包裝和/或進口報表,go build
不會失敗?
沒有,'operations'並沒有試圖導入本身。 ;)但是你的''env'確實告訴我,我使用'GOPATH = $ HOME/Projects/Go'而不是'export GOPATH = $ HOME/Projects/Go',這是真正的罪魁禍首。有趣的是,'echo $ GOPATH'仍然產生了「[abs〜〜/ Projects/Go'的路徑];然而'go env'顯示'GOPATH =「」'或者其他的。感謝您的建議。 +1 – weberc2