0

我是使用 wolfSSL 的新手。我正在尝试使用 gcc 编译一组代码。 gcc -o main main.c -lwolfssl

main.c:(.text+0x47b): undefined reference to 'wolfSSL_get_peer_certificate' collect2: error: ld returned 1 exit status我在输入语句时遇到错误。

代码片段显示了错误位置:

        fprintf(stderr, "ERROR: failed to connect to wolfSSL\n");
        return -1;
    }   
    ret = certverify(CERT_FILE,verifyCert);
    WOLFSSL_X509* webCert = wolfSSL_get_peer_certificate(ssl);

我试过修改WOLFSSL_X509* webCert = wolfSSL_get_peer_certificate(ssl);命令,但它似乎是正确的。

我不太确定为什么会发生此错误。有人可以帮我吗?

我正在使用 Kali Linux 2019.4 编译这组代码。

4

1 回答 1

1

@wolfSSL_new,

听起来应用程序无法链接库,因此当正确的头文件到位以定位函数定义时,链接函数的最后一步是失败的。libwolfssl.so 或 libwolfssl.a 在您的系统上的什么位置?它在 /usr/local/lib/libwolfssl.so 还是 /usr/local/lib/libwolfssl.a 中?

(.a 是静态库,.so 是共享对象库,它可以是或)

一旦你找到它所在的位置,试试这个构建命令(为了一个例子,我假设它在 /usr/local/lib 中):

gcc main.c -o main -I/usr/local/include -L/usr/local/lib -lwolfssl

让我知道这是否解决了您看到的链接器错误。

[更新]

通过添加配置设置 --enable-opensslextra 解决了这个问题

[结束更新]

问候,

ķ

于 2020-02-04T07:55:37.910 回答