связать статическую библиотеку c ++, созданную gcc, с программой, скомпилированной xlC? - PullRequest
0 голосов
/ 10 ноября 2010

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

1 Ответ

3 голосов
/ 10 ноября 2010

Скорее всего, это не сработает; см. вопрос C ++ Faq Lite об этом.

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

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

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

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

...