Можно ли скомпилировать / связать с occi с помощью gcc на HPUX? - PullRequest
0 голосов
/ 30 ноября 2010

У нас Oracle 11 работает на HP-UX 11.31 и gcc 4.4.3.Кажется, что нет никакого способа сделать ссылку на Occi, потому что он был построен с помощью ACC.Есть ли обходной путь для этого?

У меня была глупая идея, что я мог бы каким-то образом создать библиотеку, которая в основном обеспечивала бы соединение через прокси-соединение - собрать библиотеку с помощью aCC таким образом, чтобы он мог быть связан с gcc.Это возможно?

1 Ответ

2 голосов
/ 30 ноября 2010

Нет, пути нет.

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

Однако разные компиляторы C ++ имеют различные соглашения, которые означают, что их объектный код несовместим. Они относятся к макету класса (особенно в множественных иерархиях наследования и страшном «бриллианте смерти»), но также в соглашениях по обработке имен и обработке исключений. Схемы искажения имен специально сделаны другими, поэтому вы не можете случайно связать объекты одного компилятора с другим.

Как правило, если библиотеки создаются с использованием компилятора C ++, вы должны связать свой код с помощью того же или хотя бы совместимого компилятора C ++. И это почти всегда означает компилятор из одной семьи. Например, вы можете использовать G ++ 4.5.0, даже если код был собран с G ++ 4.4.2. Однако вы не сможете смешивать aCC с G ++.

...