找不到openssl/ssl.h但是用自制软件安装

Ric*_*ain 10 c++ macos homebrew openssl clang++

我正在我的Mac上运行El Capitan上的C++项目,即使在使用Homebrew安装openssl之后我也会收到此错误:

g++ -Wall -g -std=c++11 -I../libSocket/src -I../libData/src  -c src/fsslhandler.cpp -o obj/fsslhandler.o
In file included from src/fsslhandler.cpp:1:
In file included from src/fsslhandler.h:8:
../libSocket/src/sslsocket.h:6:10: fatal error: 'openssl/ssl.h' file not found
#include <openssl/ssl.h>
         ^
1 error generated.
make: *** [obj/fsslhandler.o] Error 1
Run Code Online (Sandbox Code Playgroud)

在搜索解决方案后,我找到一个不起作用的解决方案:

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

为了使它工作,我必须在编译时添加以下标志:

LDFLAGS: -L/usr/local/opt/openssl/lib

CPPFLAGS: -I/usr/local/opt/openssl/include

如何在没有这个标志的情况下使其工作?

Openssl用于使用brew安装的El Capitan,但是我重新安装了OS X并用自制软件更新了openssl,我在这里.

谢谢

Ric*_*ain 7

我找到了解决方案:clang没有找到正确的地方.

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

这篇文章解决了这个问题:在mac上,g ++(clang)默认无法搜索/ usr/local/include和/ usr/local/lib

  • 当我运行此命令时,Mac OS 告诉我我已经安装了命令行工具。 (10认同)

cho*_*gv3 5

尝试将这些放在您的 bash 或 zsh 配置文件中。

export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"
Run Code Online (Sandbox Code Playgroud)