Код (Text): const char *Login = (env)->GetStringUTFChars(_login,0); const char *Password = (env)->GetStringUTFChars(_password,0); struct spwd *pass; pass=getspnam (Login); const char *real_passwd = pass->sp_pwdp; int res; const char *rcp=crypt(Password,real_passwd); if ((strcmp(real_passwd,rcp)==0)){ res=1; }else{ res=0; } return res; } Оно компилируется, но не работает...
Вот что получаю при запуске: Код (Text): /usr/lib/libwebkernel_so.so: /usr/lib/libwebkernel_so.so: undefined symbol: crypt Американцы говорят "Sounds like a compiler version mismatch. Try to compile your library with gcc-2.95 or gcc-3.0" Это как?
g++: Код (Text): cd '/root/projects/webkernel_so/src' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k libwebkernel_so.so source='NTUnixAuthority.cpp' object='NTUnixAuthority.o' libtool=no depfile='.deps/NTUnixAuthority.Po' tmpdepfile='.deps/NTUnixAuthority.TPo' depmode=gcc3 /bin/sh /root/projects/webkernel_so/admin/depcomp g++ -DHAVE_CONFIG_H -I. -I/root/projects/webkernel_so/src -I.. -I/usr/include/kde -I/usr/lib/qt-3.3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -c -o NTUnixAuthority.o `test -f 'NTUnixAuthority.cpp' || echo '/root/projects/webkernel_so/src/'`NTUnixAuthority.cpp NTUnixAuthority.cpp:20:1: warning: "_XOPEN_SOURCE" redefined <command line>:1:1: warning: this is the location of the previous definition /bin/sh ../libtool --silent --mode=link g++ -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -o libwebkernel_so.so -all-static -avoid-version -module -no-undefined -shared -R /usr/lib -R /usr/lib/qt-3.3/lib -R /usr/X11R6/lib -L/usr/X11R6/lib -L/usr/lib/qt-3.3/lib -L/usr/lib -m32 -fno-rtti -lcrypt main.o webkernel_so.o NTUnixAuthority.o -lc -lkdeui
device эээ. точна-точна? может всё-таки: Код (Text): extern char *crypt(char*,char*); Не знаю. Но у тебя какая версия gcc стоит? Поставь другую и попробуй ею. В идеале, воткни ту, которая собирала glibc. Или glibc со всей системой вместе пересобери той версией компилятора, которая стоит. зы. у меня идей честно говоря нету.