今日から、RSA 用の openSSL API を調べ始めました。それは簡単なコードです:
#include<stdio.h>
#include<openssl/rsa.h>
#include<openssl/engine.h>
int main() {
RSA *rsa;
rsa = RSA_new_();
RSA_free(rsa);
return 0;
}
そして私はコンパイルしています
gcc -I /usr/local/ssl/include -o など
しかし、gcc は RSA_new と RSA_free への参照を定義していないというエラーを返します。rsa.h ヘッダーを確認しましたが、この 2 つの関数への参照はありません。どうしたの?私はopensslウェブサイトのリファレンスガイドに従っています...
編集: 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): 関数内
dlfcn_globallookup': dso_dlfcn.c:(.text+0x1d): undefined reference to
dlopen' dso_dlfcn.c:(.text+0x33): dlclose への未定義の参照dlsym' dso_dlfcn.c:(.text+0x3d): undefined reference to
' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): 関数dlfcn_bind_func': dso_dlfcn.c:(.text+0x3b1): undefined reference to
内 dlsym' dso_dlfcn.c:(.text+0x490) : dlfcn_bind_var' への未定義の参照dlerror' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): In function
: dso_dlfcn.c:(.text+0x511):dlsym' dso_dlfcn.c:(.text+0x5f0): undefined reference to
dlerror への未定義の参照' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): 関数dlfcn_load': dso_dlfcn.c:(.text+0x667): undefined reference to
内 dlopen' dso_dlfcn.c:( .text+0x6de):dlclose' dso_dlfcn.c:(.text+0x715): undefined reference to
dlerror への未定義の参照' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): 関数dlfcn_pathbyaddr': dso_dlfcn.c:(.text+0x7b1): undefined reference to
内 dladdr' dso_dlfcn.c:(.text+0x819): への未定義の参照dlerror' /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o): In function
dlfcn_unload': dso_dlfcn.c:(.text+0x87a): `dlclose' への未定義の参照 collect2: ld が 1 つの終了ステータスを返しました