OpenSSL 1.0.1f и «неопределенная ссылка на символ» SSL_state @@ OPENSSL_1.0.0 «

Этим утром я обновил свою версию OpenSSL до версии 1.0.1f, при компиляции проекта, над которым я сейчас работаю, я получил эту ошибку OpenSSL от компоновщика:

/ usr / bin / ld: janus-dtls.o: неопределенная ссылка на символ ‘SSL_state @@ OPENSSL_1.0.0’
//lib/x86_64-linux-gnu/libssl.so.1.0.0: ошибка при добавлении символов: DSO отсутствует в командной строке
collect2: error: ld вернул 1 состояние выхода

Я пошел, чтобы найти подсказки в Интернете, и единственное, что я нашел, — это то, что мне нужно скомпилировать проект с помощью -lssl и -lcrypto.
Но дело в том, что я уже делаю:

./ Makefile: 598: JANUS_LIBS = -pthread -L / usr / local / lib -lnice -lgthread-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -ljansson -lssl -lcrypto -lsofia-sip-ua

Так что я догадался, что спрошу DPKG, может, я что-то подделал. Вот ответ:

$ pkg-config —libs openssl

-L/usr/local/lib -lssl -lcrypto

Именно это я и делаю.

Кто-нибудь уже сталкивался с этой ошибкой и сумел ее исправить?

Или, может, я делаю что-то не так, что не вижу?

Любая помощь приветствуется.

0

Решение

Запросы на символы выполняются ПЕРЕД их связыванием, поэтому порядок библиотек строгий.

Если у LibA есть символ, который нужен LibB, порядок будет

gcc mod1.o mod2.o -lLibA -lLibB

Дважды проверьте, что все библиотеки в make-файле не отсутствуют.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]