2010-10-07 5 views
48

Come posso visualizzare i simboli in un file .o? nm non funziona per me. Io uso g ++/linux.Come visualizzare i simboli nei file oggetto?

+5

nm è esattamente ciò che si desidera utilizzare. Puoi spiegare come non funziona per te? – nos

+1

Dice: 'nm: Lib1.o: Formato file non riconosciuto' – nakiya

+4

@nakiya: Esegui' file Lib1.o' e dicci quale è l'output. – DarkDust

risposta

57

Invece di nm, è possibile utilizzare il potente objdump. Vedi la pagina man per i dettagli. Prova objdump -t myfile o objdump -T myfile. Con il flag -C è anche possibile demansionare i nomi C++, come fa nm.

+1

Ho provato anche ObjDump. Stesso risultato: 'objdump: Lib1.o: Formato file non riconosciuto' – nakiya

+1

try' objdump -t Lib1.o' – mustafa

7

C'è un comando per dare un'occhiata a quali funzioni sono incluse in un file oggetto o biblioteca o eseguibile:

nm 
+1

L'OP ha dichiarato direttamente che non può usare 'nm'. –

9

Hai utilizzato un cross-compiler per un'altra piattaforma? In tal caso, è necessario utilizzare il rispettivo comando nm o objdump.

Ad esempio, se è stato utilizzato XXX-YYY-gcc per compilare il file .o, è necessario utilizzare XXX-YYY-nm o XXX-YYY-objdump per elaborare i file.

3

Basta eseguire: nm you_obj_file.o | c++filt