.so файлы nm devtoolset дает формат файла не распознан - PullRequest
1 голос
/ 13 марта 2019

Мне просто любопытно, почему nm жалуется:

Формат файла не распознан

если я сделаю:

$ nm /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.so
nm: /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.so: File format not recognized

Тем не менее, та же команда может быть успешно выполнена против стандартной /lib64/libstdc++.so.6

1 Ответ

1 голос
/ 13 марта 2019

Это не общая библиотека. Это скрипт ld, используемый во время компиляции, а не во время выполнения
cat /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.so

/ * GNU ld script
Используйте общую библиотеку, но некоторые функции только в
статической библиотеке, так что попробуйте вторую. * /
OUTPUT_FORMAT (elf64-x86-64)
INPUT (/usr/lib64/libstdc++.so.6 -lstdc ++ _ без общего доступа)

Для OUTPUT_FORMAT и INPUT объяснение: см. https://sourceware.org/binutils/docs-2.32/ld/LD-Index.html#LD-Index

...