Goで簡単な電卓を作ろうとしています。最初にコマンドラインインターフェイスを構築し、GUIインターフェイスで簡単に交換できるように設計しています。プロジェクトの場所は次の$GOPATH/src/gocalc
とおりです(以降のすべてのパスはプロジェクトの場所を基準にしています)。コマンドラインインターフェイスロジックはファイルに保存されますgocalc.go
。電卓ロジックはファイルcalcfns/calcfns.go
とに保存されますoperations/operations.go
。メインプログラムを除いて、すべてのファイルのパッケージ名はファイル名(拡張子なし)と同じですgocalc.go
。package main
calcfns.go
operations.go
経由でインポートimport "gocalc/operations"
; 経由で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
失敗しないように構成するにはどうすればよいですか?