Нет, пути нет.
Различные компиляторы C имеют взаимозаменяемый код, используя стандартный ABI. Вы можете безнаказанно смешивать и сопоставлять их объектный код.
Однако разные компиляторы C ++ имеют различные соглашения, которые означают, что их объектный код несовместим. Они относятся к макету класса (особенно в множественных иерархиях наследования и страшном «бриллианте смерти»), но также в соглашениях по обработке имен и обработке исключений. Схемы искажения имен специально сделаны другими, поэтому вы не можете случайно связать объекты одного компилятора с другим.
Как правило, если библиотеки создаются с использованием компилятора C ++, вы должны связать свой код с помощью того же или хотя бы совместимого компилятора C ++. И это почти всегда означает компилятор из одной семьи. Например, вы можете использовать G ++ 4.5.0, даже если код был собран с G ++ 4.4.2. Однако вы не сможете смешивать aCC с G ++.