libssl Referência indefinida ao símbolo 'SSL_load_error_strings @@ OPENSSL_1.0.0'

1

Com o seguinte CMakeLists.txt (tentei cortá-lo AMAP)

link

Eu recebi esse erro de make no tempo de vinculação:

/usr/bin/ld: CMakeFiles/blockmon.dir/bin/blockmon.cpp.o: undefined reference to symbol 'SSL_load_error_strings@@OPENSSL_1.0.0'
//lib/x86_64-linux-gnu/libssl.so.1.0.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

/usr/bin/ld: CMakeFiles/blockmonWithXmlRPC.dir/bin/blockmonWithXmlRPC.cpp.o: undefined reference to symbol 'SSL_load_error_strings@@OPENSSL_1.0.0'
//lib/x86_64-linux-gnu/libssl.so.1.0.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

Para cada um dos dois executáveis que o Cmake está direcionando. Saída de:

ldd /lib/x86_64-linux-gnu/libssl.so.1.0.0

é

linux-vdso.so.1 =>  (0x00007ffc5a1f4000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fad78c52000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fad7888d000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fad78688000)
/lib64/ld-linux-x86-64.so.2 (0x00007fad792bd000)

Estou usando Ubuntu 14.04.2 LTS x64 . Note que em um sistema Debian 7.8 x64 funciona !

Eu tentei cortar o código executável nesta essência.

link

    
por Patrizio Bertoni 13.04.2015 / 16:21

1 resposta

1

Os desenvolvedores removeram esse símbolo. Veja link O que você precisa fazer é adicionar #define OPENSSL_API_COMPAT 0x0908 em algum lugar para obter o símbolo definido como uma macro.

    
por 28.06.2017 / 15:47