collegando un c ++ libreria statica costruita da gcc con un programma compilato da XLC?
-
30-09-2019 - |
Domanda
Ho una libreria statica partito terzo che è stato costruito su AIX con gcc. Quando cerco di collegamento a quella libreria utilizzando il compilatore XLC AIX ricevo tutti i tipi di simboli non risolti. Credo che sia a causa delle differenze di nome mangling. Se ottengo i nomi consumassimo fuori dalla biblioteca con il comando nm c'è qualcosa di fondamentalmente sbagliato con la costruzione del binario con il compilatore XLC condizione che riesce a trovare i simboli che sta cercando? Quali problemi sono io chiedono?
Soluzione
Questo sarà molto probabilmente non funziona; vedere la C ++ Faq Lite domanda su questo.
C ++ è molto più complicato di C, e c'è un sacco di cose aggiuntive che potrebbero non essere compatibili.
Per alcuni esempi, è la gestione compatibile con eccezione? i dati sono oggetti disposti nello stesso modo (in C, l'ordine come indicato, ma in C ++ può variare con specificatori di accesso)? Fare i VTables funzionano allo stesso modo? Come viene gestita dynamic_cast
?
La differenza in nome storpiatura vi impedisce di collegamento, ma ci sono molte altre differenze che possono fare molto.
Sei probabilmente meglio usare la versione di gcc hanno fatto. Questo è quello che ho dovuto fare in un progetto simile, una volta.