2013-04-01 2 views
0

우리는 에 occi lib에 동적으로 연결된 응용 프로그램을 가지고 있습니다. 이제 빌드 중에 occi의 클라이언트를 Oracle 10.2.0.4 클라이언트와 연결했지만 Oracle 11g 클라이언트와 Oracle 10G 클라이언트에서 동일한 빌드를 실행하고자합니다. 그러나 occi은 동적 이름 인 occi lib에 버전이 있으므로 역 호환이되지 않는 것 같습니다. 예컨대occi 응용 프로그램의 순방향 호환성

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* 

우리가 더 libocci.so.10.1 없기 때문에 실패 오라클 11G 클라이언트에서 우리의 OCCI 응용 프로그램을 실행할 때 당신이 볼 수 있듯이

. 누구든지 해결책을 제안 할 수 있습니까?

답변

0

나는 몇 시간 전에 똑같은 문제를 겪었다. 심층적 인 연구 끝에 발견 한 유일한 옵션은 다른 오라클 서버 (각각 다른 버전의 라이브러리와 링크 된)에 대해 서로 다른 실행 가능 버전을 구축하는 것입니다.

물론 이것은 다른 방법으로 수행 할 수 있습니다. 런타임은 두 라이브러리 버전을 모두 설치하고 동적 버전을 올바르게로드합니다 (dlopen). 그러나 나는 실제로 이것을 필요로하지 않았으므로 결코 이것을 시도하지 않았습니다. 그러나 두 라이브러리 버전이 서로 충돌하지 않고 같은 머신에 동시에 설치 될 수있는 한 작동 할 수 있습니다. 가능한 소리.


여기 두 개의 링크, 즉 도움이 될 수 있습니다

첫 번째 쇼, 당신이 특정 라이브러리 버전이 필요합니다 당신의 특정 환경. 내 문제는 이 libstdc++.so.6과 함께 제공되는 RHEL5에 occi 10.2.0.4을 가져야한다는 것입니다. occi 10.2.0.4libstdc++.so.5에 달려 있습니다. 솔루션은 잠시 후, 그들은 나에게 occi 10.2.0.4는 다행히 libstdc++.so.5

으로 libstdc++.so.6 및하지로 지어진 올바른 빌드를 준 OCCI의 포럼 (두 번째 링크)에 작성했다, 당신은 필요가 없습니다 그런 문제가 있지만, 나는 이것이 당신에게 유용 할 수 있다고 결정했습니다.