在安装go-sqlcipher时遇到了下面的错误:
go get -v github.com/xeodou/go-sqlcipher
github.com/xeodou/go-sqlcipher
# github.com/xeodou/go-sqlcipher
../github.com/xeodou/go-sqlcipher/sqlite3-binding.c:18280:10: fatal error: openssl/rand.h: No such file or directory
#include <openssl/rand.h>
^~~~~~~~~~~~~~~~
compilation terminated.
提示找不到openssl/rand.h
文件,如果你也遇到了同样的问题,可以尝试下面的方案:
darwin
brew install openssl
brew link openssl --force
# 有时候会需要下面两句
export CGO_LDFLAGS="-L/usr/local/opt/openssl/lib"
export CGO_CPPFLAGS="-I/usr/local/opt/openssl/include"
go get -v github.com/xeodou/go-sqlcipher
ubuntu
sudo apt-get install libssl-dev
go get -v github.com/xeodou/go-sqlcipher
如果你想在Ubuntu上编译windows平台使用的go-sqlcipher,那就比较麻烦了,不过也有解决方法:
下载源码编译可参照这篇文章
当然,下载安装包是最简单的,上面文章的最下边有下载的地址,可下载后进行覆盖即可。
- OpenSSL 1.0.0e for 32-bit MinGW-w64 (prefix i686-w64-mingw32)
- OpenSSL 1.0.0e for 64-bit MinGW-w64 (prefix x86_64-w64-mingw32)
下载后,将解压后的目录中的文件夹复制到gcc-mingw-w64的安装目录即可。
sudo cp -r ./mingw32/* /usr/i686-w64-mingw32/
sudo cp -r ./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的数据库。