Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ occi应用程序的前向兼容性_C++_Oracle_Occi - Fatal编程技术网

C++ occi应用程序的前向兼容性

C++ occi应用程序的前向兼容性,c++,oracle,occi,C++,Oracle,Occi,我们有一个OCCI应用程序,它动态链接到Solaris上的OCCI库。现在,在构建过程中,我们将其与Oracle 10.2.0.4客户机的occi链接,但我们希望相同的构建能够在Oracle 10G客户机和Oracle 11G客户机下运行。但似乎occi不向后兼容,因为动态occilib的名称中有一个版本 e、 g 正如您所看到的,当我们在Oracle11g客户端下运行occi应用程序时,它会失败,因为没有libocci.so.10.1。有人能提出解决办法吗?我不久前也遇到过同样的问题。经过深入

我们有一个
OCCI
应用程序,它动态链接到
Solaris
上的
OCCI
库。现在,在构建过程中,我们将其与Oracle 10.2.0.4客户机的
occi
链接,但我们希望相同的构建能够在Oracle 10G客户机和Oracle 11G客户机下运行。但似乎
occi
不向后兼容,因为动态
occi
lib的名称中有一个版本

e、 g


正如您所看到的,当我们在Oracle11g客户端下运行occi应用程序时,它会失败,因为没有
libocci.so.10.1
。有人能提出解决办法吗?

我不久前也遇到过同样的问题。经过深入研究,我发现唯一的选择是为不同的ORACLE服务器构建不同的可执行版本(分别与库的不同版本链接)

当然,这可以通过另一种方式实现——运行时区分您需要的lib版本,安装两个版本,并使用
dlopen
动态加载正确版本的库。但我从来没有试过,因为我实际上并不需要它。但只要两个库版本可以同时安装在同一台机器上而不会相互冲突,它就可以工作。对我来说可能


以下是两个可能会有所帮助的链接:

第一个示例显示,您需要为特定环境提供特定的库版本。我的问题是,我必须在RHEL5上安装
occi 10.2.0.4
,RHEL5附带
libstdc++.so.6
,而
occi 10.2.0.4
取决于
libstdc++.so.5
。唯一的解决办法是在OCCI的论坛(第二个链接)上写文章,过了一段时间,他们给了我正确的版本,那就是
OCCI 10.2.0.4
libstdc++.so.6
而不是
libstdc++.so.5

幸运的是,你不会有这样的问题,但我决定,这可能对你有用

md1sisun26:/tools/oracle/10.2.0.4/lib->dump -Lv libocci.so

libocci.so:

**** DYNAMIC SECTION INFORMATION ****
.dynamic:
[INDEX] Tag Value
[1] INIT 0xc6110
[2] FINI 0xc62b8
[3] SONAME libocci.so.10.1
[4] RUNPATH TLD_GLOBAL
[5] RPATH TLD_GLOBAL
[6] HASH 0xe8
[7] STRTAB 0x10488
[8] STRSZ 0x1fb42
[9] SYMTAB 0x41e8
[10] SYMENT 0x18
[11] CHECKSUM 0x25a3
[12] PLTSZ 0x4c80
[13] PLTREL 0x7
[14] JMPREL 0x3c450
[15] RELA 0x2ffd0
[16] RELASZ 0x11100
[17] RELAENT 0x18
[18] REGISTER 0x72
[19] REGISTER 0x86
[20] FEATURE_1 PARINIT
[21] FLAGS 0
[22] FLAGS_1 [ DISPRELDNE ]
[23] PLTGOT 0x1eb500
md1sisun26:/tools/oracle/10.2.0.4/lib->ls -lrt libocci.so
lrwxrwxrwx 1 oracle 15 Aug 10 2010 libocci.so -> libocci.so.10.1*