Связывание статической библиотеки C ++, построенная GCC с программой, собранной XLC?

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

  •  30-09-2019
  •  | 
  •  

Вопрос

У меня есть сторонняя статическая библиотека, которая была построена на AIX с GCC. Когда я пытаюсь связаться с этой библиотекой, используя компилятор XLC AIX, я получаю все виды неразрешенных символов. Я верю, что это связано с различиями в имен. Если я получаю групповые имена из библиотеки с командой NM, есть ли что-то в корне неправильное со строя бинар с компилятором XLC, если он может найти символы, которые он ищет? Какие проблемы я прошу?

Это было полезно?

Решение

Это очень вероятно, не будет работать; увидеть C ++ FAQ Lite Вопрос об этом.

C ++ намного сложнее, чем C, и есть много дополнительных вещей, которые могут не быть совместимыми.

Для нескольких примеров совместим это совместимость исключения? Представляют ли объекты данных, выложенные таким же образом (в C, заказ, как указано, но в C ++ он может варьироваться в зависимости от спецификаторов доступа)? Делайте ли VTables то же самое? Как dynamic_cast обрабатывается?

Разница в названии Mangling останавливает вас от связывания, но есть много других различий, которые могут укусить вас.

Вы, вероятно, лучше используете версию GCC, они сделали. Это то, что я должен был сделать в аналогичном проекте один раз.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top