2015-04-22 26 views
5

sto usando il seguente CMake comandiCMake - osx/mac - brew openssl

# Search OpenSSL 
find_package(PkgConfig REQUIRED) 
pkg_search_module(OPENSSL REQUIRED openssl) 

if(OPENSSL_FOUND) 

    include_directories(${OPENSSL_INCLUDE_DIRS}) 
    message(STATUS "Using OpenSSL ${OPENSSL_VERSION}") 
else() 
    # Error; with REQUIRED, pkg_search_module() will throw an error by it's own 
endif() 

funziona su Linux e su Mac - ma su Mac utilizza il libssl osx-spediti - Wich getta un sacco di deprecazione avvertenze per es 'SSL_library_init' is deprecated: first deprecated in OS X 10.7"

utilizzando brew ho già installato una versione più recente - openssl-ufficiale - libssl - come posso dire il pkg_search_module in CMake per trovare e utilizzare la versione brew?

riguarda

+0

si potrebbe usare 'FIND_PACKAGE (OpenSSL)' e specificare la posizione della vostra installazione OpenSSL come è descritto qui: http://stackoverflow.com/a/16249265/ 678093 –

risposta

6

ok ottenuto che funziona :)

brew upgrade openssl 
brew link --force openssl 
pkg-config --modversion openssl 
#1.0.2 

rimosso la cartella CMake costruire ed eseguire nuovamente il cmake .. e sopra macro trova ora la 1.0.2 libssl :)

+1

Perché ha funzionato? Questo ha funzionato ... ma perché? – Claudiu

+6

Questo non funziona più: Attenzione: Rifiutarsi di collegare: openssl Il collegamento di openssl keg-only significa che si può finire il collegamento con il sistema obsoleto, deprecato OpenSSL mentre si utilizzano le intestazioni da openssl di Homebrew. – Jonatan

6

partire dal fine 2016 questo funziona per me:

In CMakeLists.txt:

find_package(openssl REQUIRED) 

Run cmake come questo:

cmake -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl . 
+3

Per essere indipendenti dalla versione i seguenti lavori: '-DOPENSSL_ROOT_DIR =/usr/local/opt/openssl' – zcourts