在64位系统上编译32位二进制文​​件

plu*_*ism 26 windows go

我在64位系统中编写了一个Go程序,但我想编译一个32位二进制文​​件!

64位二进制文​​件工作得很好,但我不知道如何创建32位二进制文​​件.

我该怎么做?

ale*_*lex 22

如果您构建了Go from source,那么您可以为任何CPU和OS构建任何其他编译器和库.如果你在windows/amd64上并想要为windows/386构建,那么这将构建为windows/386编译所需的一切:

set GOARCH=386  
cd %GOROOT%\src  
make.bat --no-clean  
Run Code Online (Sandbox Code Playgroud)

完成后,您可以使用以下命令构建windows/386可执行文件:

set GOARCH=386  
cd %YOUR_PROG_DIR%  
go build  
Run Code Online (Sandbox Code Playgroud)

由于你在windows/amd64上,你甚至可以运行/测试你的windows/386程序.只需确保set GOARCH=386在调用windows/386的任何命令之前.

一个警告:这不支持cgo,所以你不能使用任何使用的包cgo.

  • `make.bat` 是旧版本 1.4 ...如何清理到新版本 1.8.3? (2认同)

mil*_*onb 7

我在Windows 7 64位PC上实现这一点(没有编译器编译)的方法是首先安装windows amd64,然后下载32位 zip并解压缩到第二个文件夹:

\go\go32
\go\go64
Run Code Online (Sandbox Code Playgroud)

然后调整我的命令提示符窗口PATHGOROOT内部,如下所示:

set PATH=\go\go32;%PATH%
set GOROOT=\go\go32\
Run Code Online (Sandbox Code Playgroud)

然后我回去重新编译我之前使用64位编译的应用程序.如果您想定期切换,可以批量设置所有这些.

  • 为我工作,但我必须将 PATH 设置为 go32\BIN 文件夹。 (2认同)