正在使用 PowerShell 而不是传统的 Windows 命令提示符(cmd.exe)。在 PowerShell 中设置环境变量的方式与 cmd.exe 不同,因此当你尝试使用 GOOS=linux GOARCH=amd64 go build main.go
这样的命令时,PowerShell 无法识别这种语法。
要在 PowerShell 中进行跨平台编译,你需要使用不同的语法来设置环境变量。以下是正确的命令格式:
$env:GOOS="linux"
$env:GOARCH="amd64"
go build -o myapp main.go
或者你可以将这些环境变量的设置和编译命令合并为一行:
$env:GOOS="linux"; $env:GOARCH="amd64"; go build -o myapp main.go
这段命令首先设置了 GOOS
和 GOARCH
环境变量,然后执行了 go build
命令来编译你的 Go 程序,并指定了输出文件名为 myapp
。
如果你希望这些环境变量仅对当前命令有效而不影响整个会话中的其他命令,可以这样写:
$env:GOOS="linux"; $env:GOARCH="amd64"; go build -o myapp main.go; Remove-Variable GOOS, GOARCH -ErrorAction SilentlyContinue
这将在执行完构建命令后删除这两个临时环境变量。
记住,在 PowerShell 中 $env:
是用于访问和修改环境变量的前缀。通过这种方式,你可以轻松地在 PowerShell 中设置任何需要的环境变量来进行 Go 的交叉编译。