I am working on a C++ project which uses boost asio. Trying to build the libraries that use Asia, I am getting the following error
/usr/local/include/boost/asio/ssl/detail/openssl_types.hpp:19:10: fatal error: 'openssl/conf.h' file not found
#include <openssl/conf.h>
Looking of solutions here & here, I tried
brew install openssl
brew link openssl --force
xcode-select --install
But didn't help.
Doing the following also doesn't seem to work
export C_INCLUDE_PATH=/usr/local/include
export CPLUS_INCLUDE_PATH=/usr/local/include
Boost version I am using is boost_1_63_0
. I am on MacOS Sierra
with Xcode 8.3.1
. I have installed boost using Homebrew
brew install boost
As I understand from other links, Xcode is looking at the wrong place for ssl headers. But how can I resolve this?
I looked into my /usr/local/include
& /opt/local/include
. 'openssl/ssl.h' is not present in either locations. But doing a brew install openssl
says the following
Warning: openssl is a keg-only and another version is linked to opt.
Use `brew install --force` if you want to install this version
Doing a brew install openssl --force
says
Warning: openssl-1.0.2k already installed, it's just not linked.
Doing brew link openssl --force
also doesn't solve the issue.
Doig a which openssl
returns the following:
/usr/local/bin/openssl
Please suggest
Linked or not, all installed Homebrew packages are reachable via link in /usr/local/opt
. Additionally, when you install openssl
via Homebrew, Homebrew tells you how to use the openssl libraries and headers.
~ nega@rust 15s
❯ brew install openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2k.el_capitan.bottle.tar.gz
Already downloaded: /Users/nega/Library/Caches/Homebrew/openssl-1.0.2k.el_capitan.bottle.tar.gz
==> Pouring openssl-1.0.2k.el_capitan.bottle.tar.gz
==> Using the sandbox
==> Caveats
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
/usr/local/etc/openssl/certs
and run
/usr/local/opt/openssl/bin/c_rehash
This formula is keg-only, which means it was not symlinked into /usr/local.
Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries
If you need to have this software first in your PATH run:
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc
For compilers to find this software you may need to set:
LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
For pkg-config to find this software you may need to set:
PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig
==> Summary
🍺 /usr/local/Cellar/openssl/1.0.2k: 1,696 files, 12MB
~ nega@rust 11s
❯
You don't need to brew link
anything. Just use the directories Homebrew tells you about in the appropriate places in Xcode and CMake.
Thanks to @nega for their answer. I'm posting an updated version of the install message for the Apple M1 chip (Arm64) which is too long to leave as a comment on their answer unfortunately!
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
/opt/homebrew/etc/[email protected]/certs
and run
/opt/homebrew/opt/[email protected]/bin/c_rehash
[email protected] is keg-only, which means it was not symlinked into /opt/homebrew,
because macOS provides LibreSSL.
If you need to have [email protected] first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/[email protected]/bin:$PATH"' >> ~/.zshrc
For compilers to find [email protected] you may need to set:
export LDFLAGS="-L/opt/homebrew/opt/[email protected]/lib"
export CPPFLAGS="-I/opt/homebrew/opt/[email protected]/include"
For pkg-config to find [email protected] you may need to set:
export PKG_CONFIG_PATH="/opt/homebrew/opt/[email protected]/lib/pkgconfig"
As @nega said, you don't need to brew link anything. I exported the environment variables PATH, LDFLAGS and CPPFLAGS in my bash session as recommended in the message, and then make
worked fine for me.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With