c++ - forward compatibility of occi application -
we have occi
application linked dynamically occi
lib on solaris
. during build linked occi
of oracle 10.2.0.4
client want same build able run under oracle 10g client oracle 11g client. seems occi
not backward compatible name of dynamic occi
lib has version in it.
e.g
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*
as can see when run our occi application under oracle 11g client fails there no libocci.so.10.1
. can suggest solution?
i have had same problem time ago. after deep research, option found build different executable versions different oracle servers (respectively, linked different versions of library).
of course, done way - runtime distinguish version of lib need, have both versions installed , dynamically load correct version of library, using dlopen
. never tried this, didn't need it. work, far both library versions installed on same machine @ same time without conflicting each other. sounds possible me.
here 2 links, may helpful:
- how link specific library ( g++; libstdc++.so.5 , libstdc++.so.6 )
- https://forums.oracle.com/forums/thread.jspa?messageid=4545221
the first 1 shows, need have specific library version specific environment. problem was, had have occi 10.2.0.4
on rhel5, comes libstdc++.so.6
, while occi 10.2.0.4
depends on libstdc++.so.5
. only solution write in occi's forum (the second link), after while, gave me correct build, occi 10.2.0.4
built libstdc++.so.6
, not libstdc++.so.5
luckily, won't have such problems, decided, useful you.
Comments
Post a Comment