Golang 编译windows应用程序
因为我们更喜欢在Linux上开发程序, 所以生成交叉编译器,以便在Linux上交叉编译出windows程序。
安装minGW:在Linux上运行gcc交叉编译生成windows程序
我们用到Cgo,因此需要安装 C 语言交叉编译器
sudo apt-get install gcc-mingw-w64
下载Go语言的源代码
git clone https://github.com/golang/go.git
32-bit go-compiler for windows
GOOS=windows GOARCH=386 CGO_ENABLED=1 CXX_FOR_TARGET=i686-w64-mingw32-g++ CC_FOR_TARGET=i686-w64-mingw32-gcc ./make.bash
64-bit 编译器
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CXX_FOR_TARGET=x86_64-w64-mingw32-g++ CC_FOR_TARGET=x86_64-w64-mingw32-gcc ./make.bash
非交叉编译,生成Linux程序
GOOS=linux GOARCH=amd64 CGO_ENABLED=1 CXX_FOR_TARGET=g++ CC_FOR_TARGET=gcc ./make.bash
生成Go编译器之后,以下命令执行交叉编译,生成windows程序
GOOS=windows GOARCH=386 go build
Cgo
最终的目标是要生成windows程序,所以Cgo引用的库文件也必须是windows版本的。 以ffmpeg库为例:参考截图,在ffmpeg文件夹之下,新建一个文件夹,名为libwin, 用于保存windows版本的库文件(dll文件)。
pkgconfig 也需要做相应调整。而头文件无需变动。
准备工作只有这么多了。通过指定pkgconfig的路径,就能够交叉编译Cgo程序了。 GOOS=windows GOARCH=386 PKG_CONFIG_PATH=/foo/bar go build
2015-04-21 作者 Sleepy Programmer
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
2017-11-12 SqlServer2005删除实例
2017-11-12 VMware12环境下安装CentOS7的vmware-tools