Надежен ли AppChecker для Linux Standard Base (LSB)?
Согласно сканеру LSB, мой двоичный файл предположительно несовместим с конкретной версией Linux, поскольку он использует символы GBLICXX_3.4.9. Но когда я попытался запустить бинарный файл на этой версии, все, кажется, работает нормально...
Может ли двоичный файл запускаться даже в дистрибутиве Linux, если в этом дистрибутиве отсутствуют библиотеки времени выполнения, содержащие необходимые символы?
2 ответа
Я не знаю, хорошо ли я понял вопрос, но насколько я знаю, даже если вы скомпилировали свою программу с современным glibc, это не обязательно означает, что вы не сможете выполнить ее в более старой версии. Следующая команда Linux:
objdump -T "your exe or lib file" | grep GLIB
покажет вам, к какой версии glibc относятся символы вашей программы.
Для получения дополнительной информации есть статья Урича Дреппера под названием " Как написать разделяемые библиотеки ", в которой объясняется много вещей о том, как символы работают в linux не только для разделяемых библиотек, но и для исполняемых файлов.
Я подозреваю, что они предупреждают вас, что вы используете символы, которые, даже если они доступны в вашей тестовой системе, могут быть доступны не во всех LSB-совместимых системах.