Неустранимая ошибка при сборке SQLCipher (файл 'openssl/rand.h' не найден)

Я пытаюсь собрать SQLCipher на моем Mac и получаю фатальную ошибку после запуска make.

Система: OS X El Capitan Я установил openssl после следования этой инструкции.

Перед запуском make я статически связал libcrypto.a командой

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

Я получил ошибку

sqlite3.c:18280:10: fatal error: 'openssl/rand.h' file not found
#include <openssl/rand.h>
         ^
1 error generated.
make: *** [sqlite3.lo] Error 1

4 ответа

Решение

Убедитесь, что brew правильно связался с библиотеками openssl. Запустите эту команду

 brew link openssl --force

Тогда попробуйте еще раз.

Я столкнулся с этим специально для библиотеки golang, которую пытался установить. Я получил следующую ошибку при попытке запустить 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

Я исправил это, добавив следующее в мой профиль bash:

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

Надеюсь, это поможет.

У меня не было варки на моей машине, но я исправил эту ошибку по-другому. В XCode я пошел в Предпочтения-> местоположения ->"исходные деревья"-> Нажмите +, установил OPENSSL_SRC в "полный путь к openssl-источнику"

Я сделал все это, но у меня сработало следующее: brew reinstall opensslКонечно, вы должны быть владельцем /usr/local, чтобы убедиться в этом: sudo chown -R username /usr/local,

Надеюсь, это поможет любому нуждающемуся.

Другие вопросы по тегам