2010-11-30 89 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 ++混合使用。

相关问题