Использование общих объектов, скомпилированных с более новой версией g ++ - PullRequest
2 голосов
/ 04 мая 2011

У меня есть несколько общих объектов, которые должны быть скомпилированы с g ++ 4.5, и я хотел бы, чтобы они могли быть связаны с приложениями, скомпилированными с использованием g ++ 4.1 и g ++ 4.2.

Насколько я понимаю, они не являются гарантией того, что различные версии libstdc ++ будут совместимы друг с другом, поэтому это не будет работать без каких-либо изменений.

Существует ли стандартный способ сделать этокроме установки более новой версии g ++ и связанных с ней библиотек на целевые машины?

Ответы [ 2 ]

1 голос
/ 04 мая 2011

Пока архитектура одинакова, и вы не используете функции, исключительные для более новой версии, общие объекты должны работать нормально.

0 голосов
/ 04 мая 2011

Как насчет просто протестировать его и посмотреть, работает ли он (с несовпадающими версиями GCC)? Если это работает, не нужно идти на какие-либо конкретные проблемы по этому поводу. То есть, если вы не имеете дело с системами жизнеобеспечения здесь, но я думаю, нет.

С большей вероятностью у вас будут проблемы на практике, если контейнеры STL и тому подобное будут передаваться через API библиотек. Если библиотеки используют STL только для внутреннего использования, он может «просто работать».

...