Проблемы между языком ABI в C ++ / Fortran и старых версиях GCC - PullRequest
1 голос
/ 11 февраля 2011

Нам удалось собрать и запустить наш код на Ubuntu 10.10.Код использует как C ++, скомпилированный с GCC 4.5, так и fortran, скомпилированный с последней версией ifort.От нас может потребоваться поддержка более старой встроенной платформы Linux с версией GCC, которая существует несколько лет (все еще ожидая спецификации от клиента).К сожалению, их программное и аппаратное обеспечение предназначено для использования в военных целях, поэтому его невозможно обновить.Мой вопрос заключается в том, можем ли мы столкнуться с проблемами ABI, создавая наше приложение со старой версией GCC и связывая его с библиотеками, скомпилированными с последней версией ifort?

1 Ответ

1 голос
/ 19 февраля 2011

Вы пытаетесь вызвать код на Фортране из С ++, вызвать код на С ++ из Фортрана или оба? Если вы вызываете код Fortran из C ++, я не думаю, что у вас возникнут проблемы, особенно если вы используете тот же компилятор Fortran.

Если вы пытаетесь получить доступ к коду C ++ из Fortran, это будет зависеть от природы кода C ++. Если функции, доступные на Фортране, используют связь C, то все будет в порядке, потому что C ABI стандартизирован. Если функции используют связь C ++, у меня могут возникнуть некоторые проблемы, потому что ABI C ++ не стандартизирован, и я уверен, что GCC внесла незначительные (и, возможно, серьезные) изменения в свой ABI за эти годы.

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