c++ openssl/ssl. h未找到,但已与自制软件一起安装

snvhrwxg  于 2024-01-09  发布在  其他
关注(0)|答案(4)|浏览(153)

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

  1. g++ -Wall -g -std=c++11 -I../libSocket/src -I../libData/src -c src/fsslhandler.cpp -o obj/fsslhandler.o
  2. In file included from src/fsslhandler.cpp:1:
  3. In file included from src/fsslhandler.h:8:
  4. ../libSocket/src/sslsocket.h:6:10: fatal error: 'openssl/ssl.h' file not found
  5. #include <openssl/ssl.h>
  6. ^
  7. 1 error generated.
  8. make: *** [obj/fsslhandler.o] Error 1

字符串
在寻找一个解决方案后,我发现一个不工作

  1. brew link openssl --force


为了使它工作,我必须在编译时添加以下标志:
LDFLAGS:-L/usr/local/opt/openssl/lib
CPPFLAGS:-I/usr/local/opt/openssl/include

如何让它工作没有这个标志?

Openssl使用的工作在埃尔卡皮坦安装与brew,但我重新安装了OS X和更新openssl与自制,我在这里。
谢谢

pprl5pva

pprl5pva1#

试着把这些放在你的bash或zsh配置文件中。

  1. export PATH="/usr/local/opt/[email protected]/bin:$PATH"
  2. export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
  3. export CPPFLAGS="-I/usr/local/opt/[email protected]/include"
  4. export PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig"

字符串

txu3uszq

txu3uszq2#

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

  1. xcode-select --install

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

olhwl3o2

olhwl3o23#

如果您需要在PATH中首先使用openssl@3,请运行:echo 'export PATH="/usr/local/opt/openssl@3/bin:$PATH”' >> ~/.zshrc

编译器查找openssl@3可能需要设置:export LDFLAGS="-L/usr/local/opt/openssl@3/lib”export CPPFLAGS="-I/usr/local/opt/openssl@3/include”

对于pkg-config查找openssl@3,您可能需要设置:export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig”

kb5ga3dv

kb5ga3dv4#

基于@chouyangv3的回答,以及@hannes ach的评论,这对我在macOS 12.7下的M1芯片上有效:

  1. export PATH="/opt/homebrew/Cellar/openssl@3/3.0.8/bin:$PATH"
  2. export LDFLAGS="-L/opt/homebrew/Cellar/openssl@3/3.0.8/lib"
  3. export CPPFLAGS="-I/opt/homebrew/Cellar/openssl@3/3.0.8/include"
  4. export PKG_CONFIG_PATH="/opt/homebrew/Cellar/openssl@3/3.0.8/lib/pkgconfig"

字符串

相关问题