НЕТ ОДНОГО В СТЕКЕ ПЕРЕХОДА, КТО МОЖЕТ РЕШИТЬ ЭТОТ
Проблема в вашем вопросе, а не в нас; -)
Прежде всего, efence
, скорее всего, не тот инструмент, который нужно использовать в системе Linux. Для большинства ошибок, которые efence
может найти, Valgrind может найти их и описать их вам (чтобы вы могли их исправить) гораздо точнее. Единственная веская причина для использования efence
- если ваше приложение работает в течение многих часов, а Valgrind работает слишком медленно.
Во-вторых, efence
не предназначен для работы со статическим связыванием, поэтому ошибки, которые вы получаете с флагом -static
, вовсе не удивительны.
Наконец, вы не сказали нам, что libc
установлено в вашей системе (в /lib
), и какие библиотеки присутствуют в /tool/devel/usr/lib/
. Весьма вероятно, что в / usr / devel / usr / lib присутствует libc.so.6 и его версия не совпадает с версией, установленной в /lib.
Это объясняет ошибку RTLD_NEXT used in code not dynamically loaded
. Проблема в том, что glibc состоит из нескольких двоичных файлов, которые должны точно соответствовать . Если система имеет, например, После установки libc-2.7 вы используете /lib/ld-linux.so.2 из glibc-2.7 (динамический загрузчик жестко запрограммирован в каждом исполняемом файле и не зависит от переменных среды) и смешивает его с libc.so .6 из glibc-2.9. Обычный результат этого - SIGSEGV
, странные неразрешенные ошибки символов и другие ошибки, которые не имеют смысла.