美文网首页
Ubuntu上交叉编译Windows平台的go-sqlciphe

Ubuntu上交叉编译Windows平台的go-sqlciphe

作者: 路过麦田 | 来源:发表于2018-02-05 18:05 被阅读181次

在上一篇文章中,提到了mac以及ubuntu上编译go-sqlcipher时遇到的问题
Golang安装go-sqlcipher出错[openssl/rand.h: No such file or directory]
在windows平台上编译时也遇到了相同的问题,后来想想还是采用交叉编译的方式吧,这样就不用在系统间切来切去了,而且速度也快,golang本身就支持交叉编译,而且很简单,但是在实践过程中也遇到了一些坑。

首先需要安装gcc-mingw-w64

sudo apt-get install gcc-mingw-w64

完成之后执行

// windows 64位
CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc go build

这样就可以进行编译了,但是编译的是windows64位的,如果想编译32位的,需要修改一下

// windows 32位
CGO_ENABLED=1 GOOS=windows GOARCH=386 CC=i686-w64-mingw32-gcc go build

但是go-sqlcipher编译时依然出错,提示openssl/rand.h: No such file or directory 跟mac和linux上提示是一样的,这时就需要安装openssl了,可以下载代码编译,也可以下载编译好的包进行安装

下载源码编译可参照这篇文章

OpenSSL for Windows

当然,下载安装包是最简单的,上面文章的最下边有下载的地址,可下载后进行覆盖即可。

下载后,将解压后的目录中的文件夹复制到gcc-mingw-w64的安装目录即可。

sudo cp -r ./openssl-1.0.0e-mingw32/* /usr/i686-w64-mingw32/
sudo cp -r ./openssl-1.0.0e-mingw64/* /usr/x86_64-w64-mingw32/

然后执行如下命令:

// windows 64位
CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc go build

// windows 32位
CGO_ENABLED=1 GOOS=windows GOARCH=386 CC=i686-w64-mingw32-gcc go build

编译可以通过,拷贝编译出的exe文件到windows系统上,也可以运行,并能正常创建sqlcipher的数据库。

相关文章

  • Ubuntu上交叉编译Windows平台的go-sqlciphe

    在上一篇文章中,提到了mac以及ubuntu上编译go-sqlcipher时遇到的问题Golang安装go-sql...

  • Go语言交叉编译工具gox

    基本介绍 交叉编译是为了在不同平台编译出其他平台的程序,比如在Linux编译出Windows程序,在Windows...

  • (Ubuntu + IJKPlayer 编译) + Andro

    环境:1:ubuntu 系统 (windows 交叉编译问题和某些脚本不能识别,放弃了windows 系统;MAC...

  • docker 部署 golang 项目

    Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序 一、交叉编译 Windows 下编译 Linu...

  • go 常用命令记录

    交叉编译 在mac上编译64位linux, Windows的命令编译命令 在windows 上编译64位linux...

  • WebRTC arm-linux库编译

    安装交叉编译工具 WebRTC的工程已经支持arm-linux平台库的编译 编译环境ubuntu14.04 然后执...

  • JNI与底层调用01

    交叉编译 在一个平台下,编译出另一个平台能够执行的二进制的代码 平台:windows,mac os,linux 处...

  • 2019-08-06 go 交叉编译

    Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序 Mac 下编译 Linux 和 Windows...

  • go build 不同平台交叉编译

    Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能。 Mac下编译Linux, Windows平...

  • 【golang】跨平台交叉编译

    Go语言支持交叉编译,在一个平台生成另一个平台的可执行程序 Mac 下编译 Linux 和 Windows 64位...

网友评论

      本文标题:Ubuntu上交叉编译Windows平台的go-sqlciphe

      本文链接:https://www.haomeiwen.com/subject/rulizxtx.html