2010-11-30 100 views
0

我們在HP-UX 11.31和gcc 4.4.3上運行Oracle 11。似乎沒有辦法鏈接到occi,因爲它是用aCC構建的。有沒有解決方法?是否可以在HPUX上使用gcc編譯/鏈接到occi?

我有一個愚蠢的想法,我可以以某種方式建立一個基本上代理連接的庫 - 以某種方式用acc建立庫,可以通過gcc鏈接。這可能嗎?

回答

2

不,沒有辦法解決這個問題。

不同的C編譯器使用標準ABI具有可互換的代碼。你可以混合和匹配他們的目標代碼,或多或少地逍遙法外。

但是,不同的C++編譯器有各種不同的約定,這意味着它們的目標代碼不兼容。這些涉及到類佈局(尤其是在多重繼承層次結構和可怕的'死亡鑽石'中),但也涉及到名稱約定和異常處理。名稱修改方案有意地做了改變,以便您不會意外地將一個編譯器中的對象與另一個編譯器鏈接起來。

一般來說,如果圖書館使用的是C++編譯器構建,您必須使用相同的鏈接你的代碼 - 或者至少兼容 - C++編譯器。這幾乎總是意味着來自同一個家族的編譯器。例如,即使代碼是用G ++ 4.4.2構建的,也可以使用G ++ 4.5.0。但是,您將無法將aCC與G ++混合使用。

相關問題