登录
首页 >  Golang >  Go问答

如何在64位系统上交叉编译生成32位Windows可执行文件

来源:stackoverflow

时间:2024-02-21 14:27:26 444浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《如何在64位系统上交叉编译生成32位Windows可执行文件》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我需要在我的64位windows系统下将一组Go + C代码编译成64位和32位exe。我的编译器是TDM-GCC-64 9.2.0。 64 位编译顺利,并创建了 .exe 文件。

但是我设置后编译失败

$Env:GOARCH = 386

获取 32 位 exe 文件。错误消息为“main.go:4:2: 构建约束排除 C:\Users\xxx\test\src 中的所有 Go 文件”。目录 \src 包含一个测试 c 函数和调用 c 的 go 函数。

请帮忙。谢谢。


解决方案


最终我发现正确设置四个相关的环境变量是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

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>