Durante il collegamento dinamico viene visualizzato un riferimento di funzione strano non definito. Conosco il nome della libreria che dovrebbe contenere questa funzione. Esiste un comando linux per assicurarsi che la funzione esista già nella libreria (.a file)?Controllo dell'esistenza di una funzione in una libreria in linux
risposta
Si dovrebbe essere in grado di utilizzare nm
(potrebbe richiedere il parametro --demangle
) per ottenere una lista di tutto essere dentro la biblioteca , quindi utilizzare grep
per filtrare i risultati, ad es cercare \d T functionname\(
o qualcosa del genere.
La libreria ha il nome di funzione prefissato con T. Ma il nome della funzione non è esattamente quello che mi aspetto. nm trova: '0000000000000310 T _Z15lmp_init_deviceiiiiidi' mentre sto cercando lmp_init_device. Potrebbe essere prefisso/suffisso ignorato durante il collegamento? – ahmad
Aggiungi '--demangle' e dovrebbe rimuovere i caratteri aggiunti (causati dal fatto che è C + + anziché semplice C). – Mario
Date un'occhiata a nm
comando che dovrebbe dare il pezzo di informazioni che state cercando per
- 1. Come compilare una libreria statica in linux?
- 2. Identificazione quale libreria di sistema Linux contiene una funzione
- 3. Caricamento dinamico di una libreria in Linux o OSX?
- 4. Chiamare una libreria dall'interno di una funzione helper in Codeigniter
- 5. come trovare il file di intestazione da includere per una funzione di libreria in linux
- 6. Nascondi controllo all'interno di una libreria di controllo utente WPF
- 7. Esiste una funzione di libreria in Python per trasformare una funzione generatore in una funzione che restituisce un elenco?
- 8. Libreria di input Linux/X11 senza creare una finestra
- 9. Utilizzare una libreria C in Swift su Linux
- 10. Come inizializzare una libreria condivisa su Linux
- 11. Chiamare una funzione di libreria C++ in vimscript
- 12. Come incorporare una libreria C++ in una libreria C?
- 13. Come chiamare una funzione da una libreria condivisa?
- 14. Calcola l'inverso di una funzione - Libreria
- 15. Quale contesto viene chiamata una funzione in Linux Kernel
- 16. Tracciare una funzione in funzione di una funzione
- 17. È fopen() una funzione thread-safe in Linux?
- 18. linux dlopen: una libreria può essere "notificata" quando viene caricata?
- 19. Convertire una libreria statica in una libreria condivisa?
- 20. Esiste un file .def equivalente su Linux per il controllo dei nomi delle funzioni esportate in una libreria condivisa?
- 21. Come reimplementare (o avvolgere) una funzione di syscall su Linux?
- 22. Una libreria per convertire svg in immagini?
- 23. Funzione all'interno di una funzione in Java
- 24. Come agganciare una funzione per una particolare libreria ELF condivisa?
- 25. Isolamento e moltiplicazione dell'istanza di una libreria C in corso
- 26. Android: utilizzo di SharedPreferences in una libreria
- 27. Risorse globali in una libreria di classi
- 28. Membership.CreateUser() in una libreria di classi
- 29. Deselezionare una casella di controllo in ComponentView
- 30. Come condividere una variabile in una libreria di oggetti condivisa
Prova 'nm', se il tuo simbolo è preceduto da 't' o' T' la lib lo ha. –
Rohan
[autoconf] (http://www.gnu.org/software/autoconf/) esegue questa operazione quando si verifica la disponibilità della libreria con ['AC_CHECK_LIB'] (http://www.gnu.org/software/autoconf/manual /autoconf.html#Libraries). –