Ich habe heute begonnen, OpenSSL API für RSA zu erkunden. Das ist der einfache Code:Openssl für RSA: undefinierter Verweis auf 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;
}
und ich bin Kompilieren mit
gcc -I/usr/local/ssl/include -o etc etc
aber gcc Rückkehr Fehler Definition von RSA_new und RSA_free. Ich habe den Header rsa.h überprüft, und es gibt keinen Hinweis auf diese beiden Funktionen. was ist los? Ich habe im Referenzhandbuch auf OpenSSL Website folgen ...
EDIT: gcc Ausgabe:
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.): In Funktion
dlfcn_globallookup': dso_dlfcn.c:(.text+0x1d): undefined reference to
dlopen‘ dso_dlfcn.c :(text + 0x33): undefined reference todlsym' dso_dlfcn.c:(.text+0x3d): undefined reference to
dlclose ' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): In Funktiondlfcn_bind_func': dso_dlfcn.c:(.text+0x3b1): undefined reference to
dlsym'. dso_dlfcn.c :(text + 0x490): undefined Bezug aufdlerror' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): In function
DLF cn_bind_var ':. dso_dlfcn.c :(text + 0x511): undefiniert Bezug aufdlsym' dso_dlfcn.c:(.text+0x5f0): undefined reference to
dlerror' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): In Funktiondlfcn_load': dso_dlfcn.c:(.text+0x667): undefined reference to
dlopen‘ dso_dlfcn.c: (.text 0x6de +): undefined Bezug aufdlclose' dso_dlfcn.c:(.text+0x715): undefined reference to
dlerror. ' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): In Funktiondlfcn_pathbyaddr': dso_dlfcn.c:(.text+0x7b1): undefined reference to
dladdr' dso_dlfcn.c :(text + 0x819): undefined Verweis aufdlerror' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): In function
dlfcn_unload ': dso_dlfcn.c :(text + 0x87a.): undefined reference to `dlclose' collect2: ld returned 1 exit status
Sie müssen sich mit der Bibliothek verknüpfen für 'ssl'. Ich bin mir nicht sicher, wie der Name lautet, aber versuchen Sie, '-lssl' am Ende des Compilerbefehls hinzuzufügen. – hmjd