![Nettle 軟體包似乎沒有在 Ubuntu 上安裝 RSA 功能](https://rvso.com/image/1072208/Nettle%20%E8%BB%9F%E9%AB%94%E5%8C%85%E4%BC%BC%E4%B9%8E%E6%B2%92%E6%9C%89%E5%9C%A8%20Ubuntu%20%E4%B8%8A%E5%AE%89%E8%A3%9D%20RSA%20%E5%8A%9F%E8%83%BD.png)
我從套件管理器安裝了 Nettle 庫libnettle7,利布霍格草5,蕁麻箱, 和蕁麻開發者,它似乎是基於 Nettle 3.5.1。我使用的是 Ubuntu 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 函數並呼叫它們?