2012-06-05 26 views
5

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

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