Sto creando una libreria di oggetti condivisa che sarà LD_PRELOADed con il mio programma. In quella libreria condivisa, voglio anche usare alcune variabili del mio programma. Qual è il modo di dichiarare tali variabili. Si noti che la libreria di oggetti condivisi è compilata separatamente dal mio programma.Come condividere una variabile in una libreria di oggetti condivisa
5
A
risposta
2
Sì. È necessario collegare il programma con --export-dynamic
per rendere accessibile la tabella dei simboli del programma alle librerie aperte. Se si desidera controllare esattamente quali simboli sono disponibili e utilizzando libtool
per il collegamento, è possibile utilizzare parametri come -export-symbols-regex
per specificare quali sono disponibili. Se i simboli richiesti dalla libreria non sono disponibili all'avvio del programma, falliranno con un simbolo indefinito. Alcune piattaforme richiedono flag di collegamento leggermente diversi (specialmente Windows). Prendi in considerazione l'utilizzo di libtool
per semplificare questo problema se non lo sei già.
Problemi correlati
- 1. Creazione di una libreria condivisa da file di oggetti esistenti
- 2. È una variabile globale in una libreria condivisa/dll, condivisa attraverso il processo
- 3. Come inizializzare una libreria condivisa su Linux
- 4. Convertire una libreria statica in una libreria condivisa?
- 5. Variabile globale condivisa nella libreria statica C++
- 6. Come condividere una variabile tra due classi?
- 7. Come forzare i simboli da una libreria statica da includere in una build di libreria condivisa?
- 8. Esecuzione di una libreria condivisa su Unix
- 9. Collegamento delle dipendenze di una libreria condivisa
- 10. Collegamento di una libreria condivisa utilizzando gcc
- 11. Carica più copie di una libreria condivisa
- 12. Mappatura di una variabile globale da una libreria condivisa con i tipi di carattere
- 13. Come chiamare una funzione da una libreria condivisa?
- 14. Carica una libreria condivisa collegata alla libreria Rust in R
- 15. Come agganciare una funzione per una particolare libreria ELF condivisa?
- 16. Estendi una libreria condivisa collegata dinamica?
- 17. Come utilizzare una libreria condivisa in attività nativa
- 18. Come creare una libreria condivisa con risorse in blackberry10
- 19. Tornando una libreria condivisa tabella dei simboli
- 20. valgrind - Trova perdita di memoria in una libreria condivisa
- 21. Miscelazione di oggetti PIC e non PIC in una libreria condivisa
- 22. Collega una libreria statica a una condivisa durante la compilazione?
- 23. Un collegamento a una libreria statica C++ alla libreria condivisa?
- 24. Libreria condivisa in Go?
- 25. Dove mettere una libreria condivisa in JBoss AS 5?
- 26. Collegamento di una libreria condivisa con un'altra lib condivisa in linux
- 27. Come collegare una versione specifica di una libreria condivisa in makefile senza utilizzare LD_LIBRARY_PATH?
- 28. Come creare una libreria condivisa per TensorFlow su Travis-CI
- 29. Caricamento di due istanze di una libreria condivisa
- 30. Impedire che le funzioni vengano eliminate da una libreria statica quando collegate in una libreria condivisa?