top
вывод по умолчанию предназначен для терминала. Таким образом, используются различные управляющие коды (невидимые при просмотре в терминале). К ним относятся различные способы перемещения по экрану. Стиль вывода и т. Д.
Чтобы получить более удобный вывод для текстовых файлов / редактирования или чего-либо еще, используйте пакетный режим.
top -b ...
Ваш компилятор был настроен на установку DT_RPATH
с $ORIGIN
по умолчанию, используя его встроенный -в спецификациях.
Целью $ORIGIN
является создание исполняемых файлов, которые могут быть перемещены в другое место вместе с общими библиотеками, от которых они зависят :, если двоичный файл перемещается в /alt/opt/bin
и имеет $ORIGIN/../lib
в своем пути выполнения, динамический компоновщик сначала будет искать свои библиотеки в /alt/opt/lib
. Более подробная информация находится на справочной странице ld.so(8)
.
Проблема с вашим компилятором заключается в том, что он использует устаревшийDT_RPATH
(вместо DT_RUNPATH
), который всегда ищется первым и не может быть переопределен с помощью LD_LIBRARY_PATH
. Чтобы избежать этого, попробуйте использовать от -Wl,--enable-new-dtags
до gcc
:
gcc -Wl,--enable-new-dtags file.c
Это укажет компоновщику использовать DT_RUNPATH
вместо DT_RPATH
для параметра -rpath
, независимо от того, задано ли оно в командной строке или в спецификациях. Предполагается, что это не поддерживается в старых системах, но, насколько я помню, это было довольно давно.