【问题标题】:openssl/ssl.h not found but installed with homebrew未找到 openssl/ssl.h 但已使用自制软件安装
【发布时间】:2015-12-09 12:36:23
【问题描述】:

我正在运行 El Capitan 的 Mac 上开发一个 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

在寻找解决方案后,我发现了一个不起作用

brew link openssl --force

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

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

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

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

Openssl 用于在安装了 brew 的 El Capitan 上工作,但我重新安装了 OS X 并使用 homebrew 更新了 openssl,我就在这里。

谢谢

【问题讨论】:

    标签: c++ macos openssl homebrew clang++


    【解决方案1】:

    尝试将这些放在您的 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"
    

    【讨论】:

    • 不幸的是它不起作用。全部在 Apple Silicon M1 上并更改了路径 /opt/homebrew/opt/openssl@3/
    • @hannesach 你找到解决方案了吗?
    • @Arti 在我这边,现在一切正常。但我什至不记得确切的问题
    【解决方案2】:

    我找到了解决方案:clang 没有找对地方。

    xcode-select --install
    

    这篇文章解决了这个问题:On mac, g++ (clang) fails to search /usr/local/include and /usr/local/lib by default

    【讨论】:

    • 当我运行这个命令时,Mac OS 告诉我我已经安装了命令行工具。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    • 2023-01-26
    相关资源
    最近更新 更多