Я работаю над выпуском Red Hat Enterprise Linux Server версии 7.0 (Maipo). Сервер обеспечивает OpenSSL 1.0.1. При попытке ссылки на OpenSSL я получаю много криптовых ошибок.Неопределенная ссылка на `[email protected] '(и другие)
Вот моя ссылка команда командной строки (для того, как в командной строке):
g++ -g -O2 -Wl,-rpath -o output file1.o libprivate_lib1.so -Lprivate_path -llib1 -ldl \
-lpthread -llib2 -lexpat -lgtest -lgtest_main -lboost_regex -lboost_filesystem -llzma \
-lcrypto private_lib2.so private_lib3.so -llib3
Вот некоторые из ошибок:
/lib64/libssl.so.10: undefined reference to `[email protected]'
/lib64/libssh2.so.1: undefined reference to `[email protected]'
/lib64/libssl.so.10: undefined reference to `[email protected]'
/lib64/libssl.so.10: undefined reference to `[email protected]'
/lib64/libssl.so.10: undefined reference to `[email protected]'
/lib64/libssl.so.10: undefined reference to `[email protected]'
/lib64/libssl.so.10: undefined reference to `[email protected]'
/lib64/libssh2.so.1: undefined reference to `[email protected]'
/lib64/libssl.so.10: undefined reference to `[email protected]'
/lib64/libssl.so.10: undefined reference to `[email protected]'
/lib64/libssl.so.10: undefined reference to `[email protected]'
/lib64/libssl.so.10: undefined reference to `[email protected]'
/lib64/libssh2.so.1: undefined reference to `[email protected]'
/lib64/libssl.so.10: undefined reference to `[email protected]'
/lib64/libssl.so.10: undefined reference to `[email protected]'
...
, когда я бегу:
ll /usr/lib64/libcrypto.so
Я получаю
/usr/lib64/libcrypto.so -> libcrypto.so.1.0.1e
и при работе:
objdump -tT /usr/lib64/libcrypto.so.1.0.1e | grep COMP_zlib
я
000000000013e500 g DF .text 0000000000000002 libcrypto.so.10 COMP_zlib_cleanup
000000000013e460 g DF .text 000000000000009e libcrypto.so.10 COMP_zlib
так это значит, что я его в этой библиотеке. Самое странное, что он может ссылаться на redhat 6.5/4, но не с redhat выше 7. любые предложения?
Вопрос неясен и может быть много потенциальных причин. Мы даже не знаем, что * вы пытаетесь связать или какие версии используемых вами инструментов и как вы их используете (например, CLI args) и т. Д. – ray
Возможно, вы забыли связаться с libcrypto? Добавьте флаг связывания '-lcrypto' ** после ** флаги для ссылки на libssl. Или, возможно, вы пытаетесь связать какую-то несовместимую библиотеку, которую вы скомпилировали на компьютере, который несовместим с Red Hat 7.0. Во всяком случае, это хорошая идея, чтобы подробно описать вашу проблему, например. покажите нам фактическую команду, которую вы выполнили, которая произвела этот вывод. – nos
Я связываюсь с crypto lib (добавлена командная строка). Я думаю, что это связано с redhat 7. потому что он умеет компилировать на redhat 6.5/4. – yehudahs