collegando un c ++ libreria statica costruita da gcc con un programma compilato da XLC?

StackOverflow https://stackoverflow.com/questions/4148769

  •  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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top