la vinculación de una biblioteca de C ++ estática construida por gcc con un programa compilado por xlC?
-
30-09-2019 - |
Pregunta
Tengo una tercera biblioteca estática partido que fue construido en AIX con gcc. Cuando trato de enlace a esa biblioteca utilizando el compilador xlC AIX consigo todo tipo de símbolos sin resolver. Creo que se debe a las diferencias en nombre de calandrado. Si consigo los nombres manejadas fuera de la biblioteca con el comando nm ¿hay algo fundamentalmente equivocado en la construcción de la binario con el compilador xlC siempre que pueda encontrar los símbolos que está buscando? ¿Qué problemas Estoy pidiendo a?
Solución
Esto es muy probable que no funcione; ver el C ++ Faq Lite consulta sobre este.
C ++ es mucho más complicado que C, y hay un montón de cosas adicionales que podrían no ser compatibles.
En algunos ejemplos, es el manejo compatibles excepción? los datos son objetos dispuestos en la misma forma (en C, la orden es como aparece, pero en C ++ que puede variar con especificadores de acceso)? ¿Los vtables funcionan de la misma? ¿Cómo se maneja dynamic_cast
?
La diferencia en el nombre mangling le impide vincular, pero hay muchas otras diferencias que pueden morder.
Usted es probablemente mejor usar la versión de gcc que hicieron. Eso es lo que tenía que hacer en un proyecto similar una vez.