Go交叉编译windows程序

xfstart07 · · 2343 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

在Mac下编译一个调用了 sqlite3 的程序。

安装 sqlite3

运行

go get github.com/mattn/go-sqlite3
go install github.com/mattn/go-sqlite3

windows安装sqlite3

请访问 SQLite 下载页面,从 Windows 区下载预编译的二进制文件。

您需要下载 sqlite-tools-.zip 和 sqlite-dll-.zip 压缩文件。然后创建文件夹 C:\sqlite,并在此文件夹下解压上面两个压缩文件,将得到 sqlite3.def、sqlite3.dll 和 sqlite3.exe 文件。

添加 C:\sqlite 到 PATH 环境变量,最后在命令提示符下,使用 sqlite3 命令,就能进入sqlite了。

交叉编译

在启用CGO_ENABLED的情况下,尝试使用下面命令进行Windows平台的交叉编译:

$ CGO_ENABLED=1 GOOS=windows GOARCH=386 go build -x -v -ldflags "-s -w"

出现错误如下:

# runtime/cgo
gcc_libinit_windows.c:7:10: fatal error: 'windows.h' file not found

安装mingw-w64

brew install mingw-w64

编译64位

CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ \ 
 GOOS=windows GOARCH=amd64 go build

编译x86

$ CGO_ENABLED=1 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ \ 
 GOOS=windows GOARCH=386 go build 

windows好用的终端工具

ConEmu,比 cmd 好用N倍。

Ref


有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:xfstart07

查看原文:Go交叉编译windows程序

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2343 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传