构建 SQLCipher 时出现致命错误(未找到 'openssl/rand.h' 文件)
Fatal error in building SQLCipher ('openssl/rand.h' file not found)
我正在尝试在我的 mac 上构建 SQLCipher,但在 运行 make 之后出现致命错误。
系统:OS X El Capitan
我按照 this 说明安装了 openssl。
在 运行 make 之前,我使用命令 libcrypto.a 静态链接
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
LDFLAGS="/usr/local/opt/openssl/lib/libcrypto.a"
我收到错误
sqlite3.c:18280:10: fatal error: 'openssl/rand.h' file not found
#include <openssl/rand.h>
^
1 error generated.
make: *** [sqlite3.lo] Error 1
确保 brew 已正确链接到 openssl 库。 运行 这个命令
brew link openssl --force
然后再试一次。
我的机器上没有 brew,但我用不同的方式修复了这个错误。在 Xcode 中,我转到 Preferences->locations->"source trees"-> 点击 +,将 OPENSSL_SRC 设置为 "full-path-to-openssl-source"
我在尝试安装的 golang 库中遇到了这个问题。当我尝试 运行 go get github.com/xeodou/go-sqlcipher
:
时出现以下错误
# github.com/xeodou/go-sqlcipher
project/src/github.com/xeodou/go-sqlcipher/sqlite3-binding.c:18280:10: fatal error: 'openssl/rand.h' file not found
我通过在我的 bash 个人资料中添加以下内容来解决此问题:
export CGO_LDFLAGS="-L/usr/local/opt/openssl/lib"
export CGO_CPPFLAGS="-I/usr/local/opt/openssl/include"
希望这对您有所帮助。
我做了所有这些,但对我有用的是:brew reinstall openssl
,当然你应该是 /usr/local 的所有者,以确保这一点:sudo chown -R username /usr/local
.
希望这对有需要的人有所帮助。
我正在尝试在我的 mac 上构建 SQLCipher,但在 运行 make 之后出现致命错误。
系统:OS X El Capitan 我按照 this 说明安装了 openssl。
在 运行 make 之前,我使用命令 libcrypto.a 静态链接
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
LDFLAGS="/usr/local/opt/openssl/lib/libcrypto.a"
我收到错误
sqlite3.c:18280:10: fatal error: 'openssl/rand.h' file not found
#include <openssl/rand.h>
^
1 error generated.
make: *** [sqlite3.lo] Error 1
确保 brew 已正确链接到 openssl 库。 运行 这个命令
brew link openssl --force
然后再试一次。
我的机器上没有 brew,但我用不同的方式修复了这个错误。在 Xcode 中,我转到 Preferences->locations->"source trees"-> 点击 +,将 OPENSSL_SRC 设置为 "full-path-to-openssl-source"
我在尝试安装的 golang 库中遇到了这个问题。当我尝试 运行 go get github.com/xeodou/go-sqlcipher
:
# github.com/xeodou/go-sqlcipher
project/src/github.com/xeodou/go-sqlcipher/sqlite3-binding.c:18280:10: fatal error: 'openssl/rand.h' file not found
我通过在我的 bash 个人资料中添加以下内容来解决此问题:
export CGO_LDFLAGS="-L/usr/local/opt/openssl/lib"
export CGO_CPPFLAGS="-I/usr/local/opt/openssl/include"
希望这对您有所帮助。
我做了所有这些,但对我有用的是:brew reinstall openssl
,当然你应该是 /usr/local 的所有者,以确保这一点:sudo chown -R username /usr/local
.
希望这对有需要的人有所帮助。