libcrypto.so: неопределенная ссылка на `fcntl@GLIBC_2.28'

Я выполняю кросс-компиляцию ARM на x86, и у меня есть цепочка инструментов, как показано ниже:

SET(CMAKE_SYSTEM_NAME Linux)    
include(CMakeForceCompiler)
SET(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)    
SET(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)`

Я написал собственный скрипт для кросс-компиляции моего кода для создания двоичных файлов. Внутри моего скрипта я установил следующие инструменты:

apt-get install -y debootstrap build-essential cmake libssl-dev:armhf gcc-arm-linux* g++-arm-linux*  openssl:armhf libssl-dev:armhf curl:armhf libcurl4-gnutls-dev:armhf libtirpc-dev:armhf

У меня установлен openssl 1.1.1f на моей ОС Ubuntu 18.04. При запуске моего скрипта я получаю следующую ошибку:

libcrypto.so: undefined reference to `fcntl@GLIBC_2.28'

ПРИМЕЧАНИЕ. Эта библиотека libcrypto.so собрана мной в Ubuntu 20.04, а теперь кросс-компиляция выполняется в Ubuntu 18.04


person Karma Yogi    schedule 23.10.2020    source источник


Ответы (1)


Ваш libcrypto.so делает ссылку на функцию из glibc (базовая библиотека для всего) версии 2.28, которая присутствовала во время вашей сборки 20.04, но теперь вы строите 18.04 с другой, несовместимой версией glibc.

Путь наименьшего сопротивления, вероятно, состоит в том, чтобы перестроить openssl с помощью вашей текущей цепочки инструментов.

person dratenik    schedule 23.10.2020
comment
Можете ли вы помочь мне установить этот glibc? - person Karma Yogi; 23.10.2020
comment
Вы можете иметь только одну версию glibc в системе одновременно. Его изменение наверняка исправит libcrypto. И это сломает все остальное. Если вам нужен серьезный опыт обучения, конечно, дерзайте. Не думаю, что я бы сделал это сам. - person dratenik; 23.10.2020
comment
В моем сценарии кросс-компиляции я уже устанавливаю следующие инструменты: apt-get install -y debootstrap build-essential cmake libssl-dev:armhf gcc-arm-linux* g++-arm-linux* openssl:armhf libssl-dev:armhf curl:armhf libcurl4-gnutls-dev:armhf libtirpc-dev:armhf. Но все же я получаю ошибку, определенную в приведенном выше вопросе - person Karma Yogi; 23.10.2020