Quero exibir as funções exportadas de uma biblioteca compartilhada no Linux.
Que comando me permite fazer isso?
(No Windows eu uso o programa depende)
linux
export
shared-libraries
ljbade
fonte
fonte
Respostas:
O que você precisa é
nm
e sua-D
opção:Os símbolos exportados são indicados por a
T
. Os símbolos necessários que devem ser carregados de outros objetos compartilhados possuem aU
. Observe que a tabela de símbolos não inclui apenas funções, mas também variáveis exportadas.Consulte a
nm
página do manual para mais informações.fonte
nm
sem a-D
bandeira.objdump -T *.so
também pode fazer o trabalhofonte
Em um MAC, você precisa usar
nm *.o | c++filt
, pois não há-C
opção nonm
.fonte
Entre outras ferramentas já mencionadas, você também pode usar
readelf
( manual ). É semelhante,objdump
mas entra mais em detalhes. Veja isto para a explicação da diferença.fonte