제 짧은 생각으로는 말씀하신대로 LDAP SDK가 맞지 않는 것 같습니다.
OpenLDAP을 설치하시고, 해당 서버로의 접근을 위한 클라이언트 프로그램 작성을 위해서 Netscape사의 SDK를 이용하기 때문이 아닌가 싶네요.
OpenLDAP에서 제공하는 SDK와 Netscape에서 제공하는 SDK내에서의 함수명은 같을 지 모르지만, 참고하는 라이브러러가 다르기 때문에 해당 함수를 찾지 못하고 있는 게 아닐까 싶네요.
Netscape Directory SDK를 쓰시지 마시고, OpenLDAP에서 제공하는 SDK를 이용하여 클라이언트측 프로그램을 작성해 보시기 바랍니다.
그리고 link하는 라이브러리도 OpenLDAP에서 제공하는 라이브러리르 참고할 수 있도록 설정도 바꾸어 주셔야 겠지요.
그럼, 참고가 되기를 바라며...
-- 오은기 님이 쓰신 글:
>> gcc 컴파일 문제로 일주일째 고생하고 있습니다.
>>
>> -SunOS5.8, Solaris 8 intel 버전
>> -Openldap: 1.2.13
>> -BerkeleyDB: 2.7.7
>> -Netscape Directory SDK: 4.14
>>
>> 이상이 제 컴사양이구염. 그동안 Ldap 과 BerkeleyDB를 설치하여 간단한 Directory 구조를 만들고 그에 따른 entry들을 생성하여 돌려보았습니다.
>>
>> C로 클라이언트를 구현하려고 Netscape Directory SDK를 설치하고 간단한 예제를 컴파일 시켜보아서 SDK API 함수들이 어떻게 돌아가는지 알아보려고 하는데, LDAP SDK가 서로 잘 맞지 않는지 컴파일이 안되고 있습니다.
>>
>> LD_LIBRARY_PATH에는 Shared Library 인 libldapssl41.so 의 경로를 지정해 주었구요, gcc -o cli cli.c -I/usr/local/ldap/include -L/usr/local/lib의 command를 날리며는 바로 이런 에러가 ㅠ.ㅠ 생깁니다.
>> -cli.c는 간단한 클라이언트 파일입니다.
>>
>> ldap_init /var/tmp/ccZd3IdD.o
>> ldap_memfree /var/tmp/ccZd3IdD.o
>> ldap_err2string /var/tmp/ccZd3IdD.o
>> ldap_unbind /var/tmp/ccZd3IdD.o
>> ldap_first_entry /var/tmp/ccZd3IdD.o
>> ldap_next_attribute /var/tmp/ccZd3IdD.o
>> ldap_value_free /var/tmp/ccZd3IdD.o
>> ldap_search_ext_s /var/tmp/ccZd3IdD.o
>> ber_free /var/tmp/ccZd3IdD.o
>> ldap_simple_bind_s /var/tmp/ccZd3IdD.o
>> ldap_msgfree /var/tmp/ccZd3IdD.o
>> ldap_first_attribute /var/tmp/ccZd3IdD.o
>> ldap_get_values /var/tmp/ccZd3IdD.o
>> ld: 치명적: 기호 참조 오류. cli에 출력이 기록되지 않음
>> collect2: ld returned 1 exit status
>>
>> 웬만한 문서는 다 찾아본거 같은데, 워낙 짧은 시간에 하다보니 정리가 안되어서 그러니 많이 양해해 주시고 약간의 돌파구라도 마련해 주시면 감사하겠습니다. 그럼 수고하십시요..
|