为了账号安全,请及时绑定邮箱和手机立即绑定

如何交叉编译 转到32位窗口.exe

如何交叉编译 转到32位窗口.exe

Go
慕神8447489 2022-08-09 16:52:15
我需要在我的64位Windows系统下将一组Go + C代码编译为64位和32位exe。我的编译器是TDM-GCC-64 9.2.0。编译流畅,为64位,并创建了一个.exe文件。但是编译在我设置后失败了$Env:GOARCH = 386以获取 32 位 exe 文件。错误消息是“main.go:4:2:build 约束排除 C:\Users\xxx\test\src 中的所有 Go 文件”。目录 \src 包含一个测试 c 函数和 go 函数来调用 c。请帮忙。谢谢。
查看完整描述

1 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

最终我发现正确设置四个相关的env变量是关键,32位程序可以顺利编译。


$env:GOOS="windows"

$env:GOARCH="386" 

$env:CGO_ENABLED=1

$env:GOGCCFLAGS="-m32 -mthreads -fmessage-length=0"

go build -x -buildmode=c-shared -o xxx.so main.go


查看完整回答
反对 回复 2022-08-09
  • 1 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信