Что такое clang-аналог ldd?

Как узнать, от каких DLL зависит исполняемый файл?

В системах с цепочкой инструментов разработки GNU (gcc и c) я использую для этого ldd, но как насчет систем clang, таких как, например, Mac OS X (в которой нет ldd)?


person sds    schedule 16.05.2014    source источник
comment
Вы пробовали ldd ? ОС должна иметь возможность определять необходимые библиотеки, поэтому clang и gcc должны делать почти одно и то же.   -  person MSalters    schedule 16.05.2014
comment
@MSalters: у macosx нет ldd   -  person sds    schedule 16.05.2014
comment
Эх, это видимо otool -L. То, что я не смог сделать, заключалось в том, что компилятор не имеет значения (есть порт gcc для MacOSX)   -  person MSalters    schedule 16.05.2014
comment
@MSalters: пожалуйста, превратите свой комментарий в ответ, чтобы я мог принять его и закрыть вопрос. Спасибо!   -  person sds    schedule 16.05.2014


Ответы (1)


В Mac OSX вы должны использовать otool -L вместо ldd. Это работает независимо от того, какой компилятор вы использовали. В других операционных системах могут быть и другие инструменты; например в Windows вы бы использовали Dependency Walker.

person MSalters    schedule 16.05.2014
comment
Кроме того, для проверки двоичных файлов Linux в macOS можно использовать greadelf из MacPorts, а также nm: unix.stackexchange.com/ a/418357/43390, также относится к: stackoverflow.com/q/45464584/1959808. При попытке otool -L для исполняемого файла Linux возникла ошибка объект не является типом файла Mach-O.. - person Ioannis Filippidis; 30.05.2021