go build error, error can't load package: package xxx is not in GOROOT (D:\basic_tool╱GoGoSrc╱)
2022-02-13 19:31:09
背景
この行くビルドエラーは、おそらく最大の理由や白い男、日プラス夜のほとんどを投げた後、様々な理由でDounianが、また適切な解決策を見つけなかった、そして最後にまたは正常に解決兄の指導の下、それを記録するので、長い間私を悩ませています。
設定環境の紹介
- 目的:Goプロジェクトをアイデアバイナリとしてビルドし、それをサーバーに置いて実行する。
-
Goのコンパイルに必要な環境変数がwindow下に正常に設定され、設定情報は以下のようになります。
-
次の画像に示すように、IDEA で Go 環境が正常に設定され、Go プラグインがダウンロードされ、GROOT、GOPATH、GOPROXY が正しく構成されています。
- go env -w GO111MODULE=on と設定し、go mod をオンモードにします。
- IDEAコマンドラインでgo buildの前に変数を設定します。具体的にはコンパイルするプロジェクトのSET CGO_ENABLED=0, SET GOOS=linux, SET GOARCH=amd64です(ここでSETは大文字でなければ動作しないことに注意してください)。
-
上記の手順が完了したら、IDEAのコマンドラインでcdしてコンパイルするプロジェクトのあるディレクトリに入り、go build project name/filename.goを実行するか、コンパイルするプロジェクトの親ディレクトリでgo build project nameを実行すると、同様のエラーが表示され、うまくいかないことがあるようです。
とにかく、一言で言えば、go buildは常に、コンパイルするパッケージがGOROOTのsrcディレクトリにロードできないと言うことです
問題の原因と解決策
GOでパッケージを管理する方法として、従来のGOPATHモードと現在人気のGOMODの2つがあることは皆さんご存知だと思います、主に私は最初この2つの方法についてよく知らなかったので、コンパイルしたいプロジェクトがgo modという形式でコンパイルされていることだけを知っていて、深い理由はわかりませんでした、インターネット上にはこの2つの違いや詳しい説明がたくさんあり、この記事で詳細を述べることはいたしません。
コンパイルの流れは以下の通りです。
- コンパイルするプロジェクトのディレクトリを入力します。コンパイルするディレクトリが E:/myProjects/test で、test ディレクトリに 3 つの .go ファイルがあるとすると、次のコマンドを実行してコンパイルディレクトリに入ります。
cd e:/myProjects/test
- 次に、コンパイル環境を整える
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
- そして、直接go buildを実行すると、ファイル名testのバイナリファイルが生成されます。
関連
-
[解決済み】Goプロジェクトのビルド時に「XXXパッケージはGOROOTにありません」と表示される。
-
[解決済み】golangでデータ構造をディープコピーする
-
[解決済み] 構造体のマップのデフォルト値は何ですか?
-
[解決済み] go run: 非メインパッケージは実行できません
-
[解決済み] Notepad++ 用の Go 言語プラグイン
-
[解決済み] 文字列の先頭と末尾のホワイトスペースを削除するにはどうすればよいですか?
-
[解決済み] Cgo: すみません、未実装です: 64ビットモードはコンパイルされていません。
-
[解決済み] キューの実装はありますか?
-
[解決済み] panic: ランタイムエラー:Goのインデックスが範囲外
-
[解決済み] GolangパッケージがGOROOTにない(/usr/local/go/src/packageName) [閉じた]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み] Goで配列を反転させるにはどうしたらいいですか?
-
[解決済み] Go モジュールのローカル リポジトリとして Artifactory を使用する方法
-
[解決済み] Goをアンインストールする方法を教えてください。
-
[解決済み] Go: パニック: ランタイム エラー: 無効なメモリ アドレスまたは nil ポインタのデリファレンス
-
[解決済み] Goで構造体のフィールドを反復処理する
-
[解決済み] golang の "go get" コマンドで "go: missing Git command" というエラーが表示される。
-
[解決済み] Goプロセスをフォークする方法を教えてください。
-
[解決済み] Go パッケージは log.Fatal を使うべきですか、そしてそれはいつですか?
-
goland reports an error: package XXX is not in GOROOT (X:\XXXGo ╱src╱XXX)