![Nettle 패키지가 Ubuntu에 RSA 기능을 설치하지 않는 것 같습니다.](https://rvso.com/image/1072208/Nettle%20%ED%8C%A8%ED%82%A4%EC%A7%80%EA%B0%80%20Ubuntu%EC%97%90%20RSA%20%EA%B8%B0%EB%8A%A5%EC%9D%84%20%EC%84%A4%EC%B9%98%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EA%B2%83%20%EA%B0%99%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
패키지 관리자에서 Nettle 라이브러리를 설치했습니다.libnettle7,libhogweed5,쐐기풀통, 그리고쐐기풀 개발, 이는 Nettle 3.5.1을 기반으로 하는 것으로 보입니다. 우분투 20.04를 사용하고 있습니다. 그 후 AES와 SHA 알고리즘을 사용하여 두 개의 프로그램을 작성할 수 있었고 제대로 작동했기 때문에 헤더 경로가 올바른지 알 수 있었습니다.
그러나 컴파일러 오류 없이 RSA 함수를 호출할 수는 없었습니다.
$ make rsa_test
/usr/bin/ld: /tmp/ccaqGeCe.o: in function `main':
rsa_test.cc:(.text+0x36): undefined reference to `nettle_rsa_public_key_init'
/usr/bin/ld: rsa_test.cc:(.text+0x42): undefined reference to `nettle_rsa_private_key_init'
collect2: error: ld returned 1 exit status
make: *** [Makefile:9: rsa_test] Error 1
오류를 생성하는 최소 코드는 다음과 같습니다.
#include <stdlib.h>
#include <stdio.h>
#include <nettle/rsa.h>
using namespace std;
int main(int argc, char **argv) {
struct rsa_public_key pub;
struct rsa_private_key priv;
rsa_public_key_init(&pub);
rsa_private_key_init(&priv);
}
rsa.h 파일은 /usr/include/nettle에 있으며 rsa_public_key_init 및 rsa_public_key_init 함수를 포함합니다. RSA 기능을 설치하고 호출하려면 어떻게 해야 합니까?