我刚开始使用 WolfSSL。我正在尝试使用 gcc 编译一组代码。
gcc -o main main.c -lwolfssl
我遇到 main.c:(.text+0x47b) 错误:未定义对“wolfSSL_get_peer_certificate”的引用
collect2:错误:ld 在输入语句时返回 1 退出状态
。
代码片段显示了错误位置:
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来编译这组代码。
最佳答案
@wolfSSL_new,
听起来应用程序无法链接库,因此虽然正确的 header 已就位来定位函数定义,但链接函数的最后一步却失败了。 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 解决了这个问题
[结束更新]
问候,
K
关于c - 使用wolfSSL时get_peer_certificate错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60051692/