在MacOS Sierra上找不到OpenSSL

ign*_*-me 8 php macos openssl mongodb macos-sierra

我正在尝试安装PHP MongoDB驱动程序,但安装失败,因为它无法找到OpenSSL。

/Users/username/mongo-php-driver/src/libmongoc/src/mongoc/mongoc-crypto-openssl.c:24:10: fatal error: 'openssl/sha.h' file not found
#include <openssl/sha.h>
         ^
1 error generated.
make: *** [src/libmongoc/src/mongoc/mongoc-crypto-openssl.lo] Error 1
Run Code Online (Sandbox Code Playgroud)

我读到这与最新版本的MacOS有关吗?有没有办法做到这一点,因为我确实需要安装此驱动程序。

小智 9

这是唯一对我有用的解决方案。

cd /usr/local/include 
ln -s ../opt/openssl/include/openssl .
Run Code Online (Sandbox Code Playgroud)

资料来源:https : //www.anintegratedworld.com/mac-osx-fatal-error-opensslsha-h-file-not-found/


sid*_*ker 6

您需要使用homebrew安装OpenSSL ,并告诉homebrew创建必要的符号链接:

brew install openssl
brew link openssl --force
Run Code Online (Sandbox Code Playgroud)

如果尚未安装自制软件,则可以通过运行以下命令获取:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Run Code Online (Sandbox Code Playgroud)

在此之前,如果尚未安装XCode和XCode命令行工具,请执行以下操作:

xcode-select --install
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记设置环境变量`export LDFLAGS =“ -L / usr / local / opt / openssl / lib -L ​​/ usr / local / lib -L ​​/ usr / local / opt / expat / lib” &amp;&amp; export CFLAGS =“-I / usr / local / opt / openssl / include / -I / usr / local / include -I / usr / local / opt / expat / include” &amp;&amp; export CPPFLAGS =“-I / usr / local / opt / openssl / include / -I / usr / local / include -I / usr / local / opt / expat / include“ (2认同)