Mam już dzisiaj zacząć odkrywać api openSSL dla RSA. To prosty kod:Openssl dla RSA: niezdefiniowane odniesienie do RSA_new
#include<stdio.h>
#include<openssl/rsa.h>
#include<openssl/engine.h>
int main() {
RSA *rsa;
rsa = RSA_new_();
RSA_free(rsa);
return 0;
}
i jestem kompilacji z
gcc -I/usr/local/ssl/include -o etc etc
ale gcc błędu powrót undefining odniesienie do RSA_new i RSA_free. Sprawdziłem nagłówek rsa.h i nie ma odniesienia do tej dwóch funkcji. co jest nie tak? mam śledzić przewodnik na stronie internetowej openssl ...
EDIT: wyjście gcc:
gcc -I/usr/local/ssl/include/-o RSA rsa.c -L/usr/local/ssl/lib -lcrypto /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): W funkcji
dlfcn_globallookup': dso_dlfcn.c:(.text+0x1d): undefined reference to
dlopen ' dso_dlfcn.c :(. text + 0x33): niezdefiniowane odniesienie dodlsym' dso_dlfcn.c:(.text+0x3d): undefined reference to
dlclose ' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): W funkcjidlfcn_bind_func': dso_dlfcn.c:(.text+0x3b1): undefined reference to
dlsym' dso_dlfcn.c :(. text + 0x490): niezdefiniowane odniesienie dodlerror' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): In function
dlf cn_bind_var ' dso_dlfcn.c :(tekst i 0x511) nieokreślone odniesienie dodlsym' dso_dlfcn.c:(.text+0x5f0): undefined reference to
dlerror' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): w funkcjidlfcn_load': dso_dlfcn.c:(.text+0x667): undefined reference to
dlopen” dso_dlfcn.c: (.text + 0x6de) nieokreślone odniesienie dodlclose' dso_dlfcn.c:(.text+0x715): undefined reference to
dlerror. /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o) w funkcjidlfcn_pathbyaddr': dso_dlfcn.c:(.text+0x7b1): undefined reference to
dladdr ' dso_dlfcn.c :(tekst i 0x819) nieokreślone odniesienie dodlerror' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): In function
dlfcn_unload ': dso_dlfcn.c :(tekstu + 0x87a). nieokreślonej odniesieniu do `dlclose' collect2 LD powrócił 1 exit status
trzeba połączyć z biblioteką dla 'ssl'. Nie jestem pewien, jaka jest jego nazwa, ale spróbuj dodać '-lssl' do końca polecenia kompilatora. – hmjd