Il mio programma è costruito come un caricatore e molti moduli che sono librerie condivise. Ora una di queste librerie utilizza pthreads e sembra legata al modulo in modo dinamico (caricata all'avvio). Ora sarebbe più semplice se potessi forzare il collegamento di pthreads nel file del modulo. GCC su Linux, come faccio? Immagino che un libpthread.a sia necessario ....Forza GCC a collegamento statico, ad es. pthreads (e non collegamento dinamico)
risposta
Mentre il collegamento di libpthread.a
in una libreria condivisa è teoricamente possibile, è una pessima idea. Il motivo è che libpthread
fa parte di glibc
e tutte parti di glibc
devono corrispondere esattamente a oppure si verificano arresti anomali e non spiegabili.
Quindi collega libpthread.a
nella tua libreria condivisa volontà:
- causare il crash del programma quando viene spostato a una macchina con una versione diversa di
glibc
- causare il programma esistente in crash quando della macchina corrente
glibc
è aggiornato, ma il modulo non è ricollegato per l'aggiornamentolibpthread.a
.
Risparmia te stesso l'irritazione e non farlo.
: o oh mio dio oh mio Dio, Bene, lo dici. Ma quando la sua parte di glibc, .../me è derped .. – imacake
Grazie. Come la risposta Una query però - Se libpthread fa parte di libc/glibc, perché viene fornito come una libreria separata. Quasi tutti i collegamenti di libs a libc e quindi, quale era allora la necessità di libpthread – Kiran
@Kiran "Perché è fornito come una libreria separata" - perché molti programmi non hanno bisogno di thread, e il collegamento in 'libpthread' impone un inutile sovraccarico su tali programmi. –
- 1. Collegamento statico e dinamico/condiviso con MinGW
- 2. Collegamento CMake e statico
- 3. Collegamento statico Android vs collegamento dinamico contro glibc
- 4. Sostituzione malloc di Windows (ad es. Tcmalloc) e collegamento dinamico crt
- 5. Collegamento statico con libwinpthread
- 6. Che cosa significa per il collegamento statico e il collegamento dinamico in Python?
- 7. Qt collegamento statico e distribuzione
- 8. Collegamento statico con glibc e libstdC++
- 9. Distanza di collegamento dinamico in configurazione forza D3
- 10. Collegamento statico del codice Nim a Go
- 11. Modifica riga griglia - collegamento dinamico a DropDownList
- 12. Collegamento a framework Apple con gcc
- 13. Collegamento a un file statico di Hamlet
- 14. Collegamento statico di librerie in MinGW
- 15. errore di collegamento variabile statico
- 16. Differenza tra collegamento dinamico in fase di caricamento e collegamento dinamico in fase di esecuzione
- 17. Collegamento statico di librerie GTK + in windows
- 18. Forza per il collegamento alla libreria condivisa inutilizzata
- 19. Forza un collegamento a WebView per avviare Safari?
- 20. Caricamento di plugin Qt durante il collegamento statico a Qt?
- 21. onbeforeunload - collegamento ad eventi selettivi
- 22. riferimento non definita durante il collegamento in modo dinamico con gcc in Cygwin
- 23. Segfaults eseguibili semplici all'avvio durante il collegamento di pthreads
- 24. gcc differenza tra -pthread e -pthreads?
- 25. Forza GCC a non ottimizzare una variabile non utilizzata?
- 26. Boost libreria collegamento statico su Xcode 4
- 27. prompt dei comandi gcc e g ++ compilazione e collegamento
- 28. Collegamento profondo iOS e collegamento universale, collegamento diretto in ios
- 29. GCC 4.5 vs 4.4 collegamento con dipendenze
- 30. collegamento per aumentare regex in gcc
In quale istanza devi fare qualcosa di diverso da includere l'intestazione pthread per farlo compilare? Hai un esempio di fonte? Questo metodo di compilazione di un assoluto deve? –