Почему LD продолжает не производить “доступную информацию о версии”

find -maxdepth 1 
find -maxdepth 1 -ls

меньше ВКЛАДКИ ВКЛАДКИ

находит, что коммутатор-ls независим от/bin/ls и имеет свой собственный формат и отображает подробную информацию:

127432    0 drwxr-xr-x   2 stefan   stefan         48 Apr  8 22:51 ./temp/falsch/.hiddenfalsch
127447    0 lrwxrwxrwx   1 stefan   stefan          9 Apr  8 22:51 ./temp/falsch/linkfalsch -> subfalsch
127427    0 drwxr-xr-x   2 stefan   stefan         48 Apr  8 22:51 ./temp/.hiddenmusik

другой, детали, показывающие возможность, stat

stat *
  File: `halx0o'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 807h/2055d  Inode: 102701      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/  stefan)   Gid: ( 1000/  stefan)
Access: 2011-04-08 22:38:18.000000000 +0200
Modify: 2009-07-23 03:16:15.000000000 +0200
Change: 2011-04-09 23:29:13.000000000 +0200
  File: `ho ho ho'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 807h/2055d  Inode: 115835      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/  stefan)   Gid: ( 1000/  stefan)
Access: 2011-04-08 22:38:18.000000000 +0200
Modify: 2010-07-24 14:12:48.000000000 +0200
Change: 2011-04-09 23:29:13.000000000 +0200
7
20.01.2011, 23:47
2 ответа

Нет, это не делает. Это, кажется, означает, что версия libz, который Вы связали против того, когда Вы скомпилировали свою программу, была создана с различными инструментами, чем версия в madriva системе, которую Вы используете. Копия mandriva является информацией о версии отсутствующего символа, которая присутствовала в копии libz библиотеки Ваша программа, первоначально связанная против. Это имеет отношение к интервалу различий он соответствующие среды сборки, не с версиями самой libz библиотеки.

Я подозреваю, что Вы продолжите получать сообщение, пока Вы не предоставите копию libz, который был создан с тем же набором инструментов как Ваш двоичный файл, т.е. набор инструментов, который вставляет версии символа в библиотеку. Или создайте свой двоичный файл с инструментами, подобными используемым, когда libz был скомпилирован в Вашей mandriva системе, таким образом, никакие ссылки версии символа не присутствуют в двоичном файле.

См.: http://harmful.cat-v.org/software/dynamic-linking/versioned-symbols http://www.linux-kongress.org/1997/youngdale.html http://www.usenix.org/publications/library/proceedings/als00/2000papers/papers/full_papers/browndavid/browndavid_html/

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

10
27.01.2020, 20:16

Та ошибка, "никакая доступная информация о версии", означает, что версия libz, который Вы связали против того, когда Вы скомпилировали библиотеку, является более новой, чем версия в mandrivia системе, которую Вы используете.

3
27.01.2020, 20:16

Теги

Похожие вопросы