6

I am trying to build SQLCipher on my mac and getting fatal error after running make.

System : OS X El Capitan I installed openssl after following this instruction.

Before running make I statically linked libcrypto.a with command

./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
    LDFLAGS="/usr/local/opt/openssl/lib/libcrypto.a"

Error I got

sqlite3.c:18280:10: fatal error: 'openssl/rand.h' file not found
#include <openssl/rand.h>
         ^
1 error generated.
make: *** [sqlite3.lo] Error 1
mkso
  • 3,178
  • 4
  • 27
  • 35

4 Answers4

3

I encountered this specifically for a golang library I was trying to install. I was getting the following error when I tried to run go get github.com/xeodou/go-sqlcipher:

# github.com/xeodou/go-sqlcipher
project/src/github.com/xeodou/go-sqlcipher/sqlite3-binding.c:18280:10: fatal error: 'openssl/rand.h' file not found

I fixed this by adding the following to my bash profile:

export CGO_LDFLAGS="-L/usr/local/opt/openssl/lib"
export CGO_CPPFLAGS="-I/usr/local/opt/openssl/include"

Hopefully this helps.

flaron
  • 31
  • 2
1

Make sure that brew has linked to openssl libraries correctly. Run this command

 brew link openssl --force

Then try again.

Harry
  • 11,298
  • 1
  • 29
  • 43
1

I didn't have brew on my machine, but I fixed this error a different way. In Xcode, I went to Preferences->locations->"source trees"-> Click +, set OPENSSL_SRC to "full-path-to-openssl-source"

r590
  • 689
  • 1
  • 10
  • 15
0

I did all that, but the thing that worked for me is : brew reinstall openssl, of course you should be the owner of /usr/local, to make sure of that : sudo chown -R username /usr/local.

Hopefully this will help anyone in need.

  • Latest macos versions won't let you change the ownership of `/usr/local`. But you can still change the owner of the subfolders, therefore you should use instead `sudo chown -R username /usr/local/*` – ccpizza May 07 '19 at 05:58