[Golang] 異なるプラットフォーム (Windows と Linux) にパッケージ化されている場合、GOOS=windows の設定は無効です。

Go で小さなツールを作成し、それをパッケージ化して Linux または Windows の exe 実行可能ファイルにコンパイルするとき、スムーズではなく、これまでにも何度か遭遇したことがありますが、いつも記録するのを忘れていました。

set CGO_ENABLED=0
set GOOS=windows
set GOARCH=amd64
go build ./合并小文件.go

Windows環境では、末尾が.exeの実行ファイルが正しく生成されません。
ここに画像の説明を挿入します

go env を確認すると、set GOOS=windows が正常に設定されていないことがわかります。

E:\PROGRAMMING\GolangStudy\my_utils\1.大文本处理>go env
set GO111MODULE=on
set GOARCH=amd64
# 忽略一些参数......
set GOOS=linux 	# 此处还是linux
set GOPATH=D:\PROGRAMMING\Go;
# 忽略一些参数......

理由: 現在、Windows PowerShell で実行されており、set コマンドは機能しません
ここに画像の説明を挿入します

# 在原窗口执行
go env -w GOOS=windows 
# 或新建一个cmd终端窗囗执行
set GOOS=windows

ここに画像の説明を挿入します
確認する

E:\PROGRAMMING\GolangStudy\> go env
set GO111MODULE=on
set GOARCH=amd64
# 忽略一些参数......
set GOOS=windows
set GOPATH=D:\PROGRAMMING\Go;
# 忽略一些参数......

go build パッケージングを再実行し、exe ファイルが正常に出力されました。
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_45277554/article/details/133246629