前提・実現したいこと
Goでプログラムを作成中です。ソースコードが長くなってきたので、「main.go」にメインプログラム、「module.go」に「main.go」で使用する関数などを記述する……というように、1つのプログラムを複数のソースコードファイルに分割して書きたいと考えています。
発生している問題・エラーメッセージ
「main.go」にメインプログラム、「module.go」に「main.go」で使用する関数などを記述し、main.goをgo build
しようとすると以下のようなエラーが発生しました。
>go build main.go main.go:4:8: package Project/module is not in GOROOT (C:\Program Files\Go\src\Project\module)
main.go、module.goの位置は以下の通りです。
$GOPATH └── src └── Project | ├── module | └──module.go └── main.go
私がやりたいことは以下の通りとなります。
- ソースコードが長くなってきたので、「main.go」にメインプログラム、「module.go」に「main.go」で使用する関数などを記述する……というように、1つのプログラムを複数のソースコードファイルに分割して書きたい。
- しかし、「main.go」にメインプログラム、「module.go」に「main.go」で使用する関数などを記述し、main.go、module.goを以下のような位置に置いてから
$GOPATH └── src └── Project | ├── module | └──module.go └── main.go
main.goをgo build
しようとすると
>go build main.go main.go:4:8: package Project/module is not in GOROOT (C:\Program Files\Go\src\Project\module)
というエラーメッセージが出る。
- 以上のエラーを解決し、標準パッケージや
go get
でダウンロードしたパッケージと同様にimportして「main.go」から呼び出せるようにしたい。
該当のソースコード
main.go、module.goのソースコードは以下の通りです。
main.go
Go
1package main 2 3import "fmt" 4import "Project/module" 5 6func main() { 7 fmt.Println("This is main.go. ") 8 module.sayHello() 9 10}
module.go
Go
1package Project 2 3import "fmt" 4 5func sayHello() { 6 fmt.Println("Hello!") 7 8}
試したこと
module.goの位置を変えたり、Projectディレクトリの位置を変更したりしましたが、やはり同様のエラーが発生しました。
補足情報(FW/ツールのバージョンなど)
OS:Windows10 Home
Goのバージョン:1.16
環境変数GOPATH
の値:C:\Users(ユーザー名)\go
環境変数GOROOT
の値:C:\Program Files\Go

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/04 03:42 編集
2021/03/04 05:06