Мне кажется, у вас было две проблемы: 1) нет символов отладки для исполняемого файла и 2) нет символов отладки для некоторых общих библиотек, которые генерировали предупреждения.У меня также была проблема 2).Работающий русский ответил 1) и указал мне правильное направление для 2).
Во-первых, если вам не нужно отлаживать библиотеки, упомянутые в предупреждениях, то их можно безопасно игнорировать.Но, конечно, предупреждения раздражают и могут скрывать другие проблемы.В вашем и моем случае библиотеки, установленные MacPorts, должны были удалить символы отладки, но не сделали этого.Причина, по которой возникает предупреждение, заключается в том, как говорит Employed Russian, потому что сами символы хранятся в объектных файлах, созданных в процессе сборки, а не в установленных библиотеках.Библиотеки хранят указатели на объектные файлы как часть их (минимальной) отладочной информации.
Это можно проверить с помощью команды strings.Если вы получаете предупреждение о том, что /crazy/path/to/something.o не может быть найдено при загрузке libsomething.dylib:
strings - libsomething.dylib | grep something.o
Обратите внимание, что вам нужен '-' (это дало мнев первый раз).
Чтобы исправить это, удалите отладочную информацию примерно так:
strip -S libsomething.dylib
После этого 'dwarfdump --file-stats libsomething.dylib' должно показать, что «STABS debug»раздел пуст(Ссылки на объектные файлы хранятся в формате отладки STABS.)
Больше никаких уродливых предупреждений .. ууу!
Это было способом слишком сложно.