2012-03-08 3 views
0

하나의 Oracle 데이터베이스와 LDAP에서 데이터를 검사하는 작은 도구를 작성하고 있습니다. 퍼포먼스에 대한 생각 나는 C/C++로 가기로 결정 했으므로 open ldap 라이브러리와 oracle occi 라이브러리를 사용하고 있습니다. 이제 각 라이브러리에 대한 래퍼를 조합하여 필자는 필자의 프로그램을 Oracle 라이브러리와 링크하면 ldap 라이브러리의 함수가 실패한다는 것을 알게되었습니다. 오라클 라이브러리에는 openldap 라이브러리에 정의 된 것과 동일한 이름으로 정의 된 함수가 있습니다. 이제는이 문제에 관해 웹에서 많은 것을 찾지 못했습니다. 일부는 ldap 라이브러리와 먼저 연결하는 것이 좋지만 그렇게하지 않으면 init()에서 더 이상 실패하지 않지만 connect()를 지나치지 않습니다. .OpenLDAP의 libldap과 Oracle의 occi 라이브러리 사이의 충돌

저는 리눅스 (우분투)에서 개발하고 있으며, 제가 사용하는 라이브러리는 모두 C입니다. 누구에게도이 조언이 있습니까? 이 문제가 발생한 다른 사람이 있어야합니다.

모든 의견을 환영합니다. 많은 감사

답변

0

이 기능들이 API 엔트리 포인트가 아니라면 두 기능을 모두 공유 라이브러리로 연결하여 작동시킬 수 있어야합니다. 그런 다음 각 라이브러리는 자체 버전의 기능을 사용할 것이므로 사용자가 직접 호출하지 않으면 두 버전을 모두 볼 수 없습니다.

해당 기능이 API 진입 점, 즉 LDAP API 인 경우 꽤 이상한 일이 있습니다.

+0

공유 라이브러리로 ldap 라이브러리를 빌드했으며 공유 라이브러리로이 둘을 연결합니다. 이것은 오라클의 libclntsh와 연결될 때 발생합니다. 아래를 참조하십시오 : 'objdump -T libclntsh.so | grep "ldap_sasl_bind_s" 00fec288 g DF text.unlikely \t 0000004c Base ldap_sasl_bind_s' – seven

+0

@seven 이는 Oracle 라이브러리에 이미 필요한 모든 것이 들어 있음을 나타냅니다. 그냥 사용해보십시오. – EJP

0

연결 단계에서 "-lldap -llber"를 지정하여이 문제를 해결할 수 있습니다.

연결 단계의 끝에 oracle libray를 지정했는지 확인하십시오. ldap은 liblber와 종속되어 있습니다.

관련 문제