ошибка перемещения: lib c .so.6: символ _dl_starting_up, версия GLIBC_PRIVATE не определена в файле ld- linux -x86-64.so.2 с указанием времени ссылки - PullRequest
0 голосов
/ 28 января 2020

Наша компания сделала одно приложение, которое работает на электронной версии 1.8.2. Когда кто-то открывает приложение на Centos 6.x ниже, возникает ошибка

Segmentation fault (core dumped)

Я сделал скрипт с помощью ссылка :

#!/bin/bash
LDDVERSION="$(ldd --version | awk '/ldd/{print $NF}')"
requiredVersion=2.17
SRC_PATH=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
glibpath=$SRC_PATH/gcc
export glibpath="$SRC_PATH/gcc"
if (( $(echo "$LDDVERSION < $requiredVersion" |bc -l) )); then
echo "Loading GCC"
export LD_LIBRARY_PATH=$glibpath/glib-2.49.4-kgesagxmtbemim2denf65on4iixy3miy/lib:$LD_LIBRARY_PATH;
export LD_LIBRARY_PATH=$glibpath/libffi-3.2.1-wk2luzhfdpbievnqqtu24pi774esyqye/lib64:$LD_LIBRARY_PATH;
export LD_LIBRARY_PATH=$glibpath/pcre-8.39-itdbuzevbtzqeqrvna47wstwczud67wx/lib:$LD_LIBRARY_PATH;
export LD_LIBRARY_PATH=$glibpath/gettext-0.19.8.1-aoweyaoufujdlobl7dphb2gdrhuhikil/lib:$LD_LIBRARY_PATH;
fi
$SRC_PATH/myapp

Он отлично работает на электронной версии 1.8.2, но когда я меняю электронную версию 1.8.3. Ниже выводится ошибка.

'lib c .so.6: версия' GLIBC_2.15 'не найдена`

Затем я проверил с помощью команды:

**$ strings libc.so.6 |grep GLIBC**
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_PRIVATE

После некоторых исследований я нахожу файл lib c .so.6 в папке Google Chrome lib

strings /opt/google/chrome/lib/libc.so.6 |grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE

Так что я изменил этот файл на мою старую lib c. файл так.6. После этого я столкнулся с приведенной ниже ошибкой.

ошибка перемещения: lib c .so.6: символ _dl_starting_up, версия GLIBC_PRIVATE не определена в файле ld- linux -x86-64.so.2 со ссылкой на время ссылки ./myscript.sh: строка 14: 30656 Ошибка сегментации (ядро сброшено) $ SRC_PATH / myapp

Извините за мой плохой английский sh

...