Поясните насчет бинарной совместимости С++
От: Rothmans  
Дата: 23.03.10 20:45
Оценка:
Привет всем,

Я совсем не специалист по Линуксу.
У меня есть хост, устройство, на котором работает кастомизированный Линукс, это может быть BusyBox или даже собранная под данный процессор Убунту.
Для работы большинства программ в такой системе требуются библиотеки. Си-рантайм, stlport, z, pthread, и прочие.
Большинство из них уже есть в системе, вероятно скомпилированные тем же компилятором, которым готовился весь дистрибутив.
У меня есть в распоряжении именно тот самый компилятор, которым все это дело собиралось.

Теперь вопрос.
Если я возьму совсем другой компилятор, но для того же процессора, и скомпилирую часть своей программы им, а часть (shared libraries) исходным компилятором.
Программа и библиотеки написаны на С++ (не С).

Верно ли, что 100% совместимость частей моей программы не гарантируется? Т.е. даже если все на первый взгляд работает вместе, то это не гарантия совместисмоти. И что в общем бинарные файлы программ, написанных на С++, могут быть несовместимы друг с другом, если скопилированы разными компиляторами, даже несмотря на то, что линковались с одними и теми же библиотеками?

Как посоветуете разрешить конфликт?
Использовать один и тот же компилятор для обеих частей моей программы -- это исключительно единственное существующее решение?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.