gpt4 book ai didi

c++ - 使用 sk_X509_pop_free 升级 OpenSSL 会导致编译器错误

转载 作者:太空狗 更新时间:2023-10-29 21:49:01 25 4
gpt4 key购买 nike

当我将 OpenSSL 从 0.9.8 升级到 1.0.0E 时,我现在遇到编译器错误。以下是简化版:

1: #include <openssl/pem.h>  
2:
3: int main( int argc, char* argv[] )
4: {
5: STACK_OF(X509)* certs = NULL;
6: sk_X509_pop_free(certs, X509_free);
7: }

我收到以下错误:

CC -g0 -I/openssl/ssl/include main.cc -o main -L/openssl/ssl/lib -lcrypto -lssl
"main.cc", line 6: Error: Different types for "?:" (extern "C" void(*)(x509_st*) and void(*)(x509_st*)).
"main.cc", line 6: Warning (Anachronism): Formal argument func of type extern "C" void(*)(void*) in call to sk_pop_free(stack_st*, extern "C" void(*)(void*)) is being passed void(*)(void*).

二进制:ELF 32 位 MSB 可执行文件 SPARC32PLUS 版本 1,V8+ 必需,动态链接,未剥离。
编译器:CC:Sun C++ 5.9 SunOS_sparc 2007/05/03。
操作系统:Solaris 10

最佳答案

以下代码消除了错误:

sk_X509_pop_free(certs, (void(*)(x509_st*))X509_free);

关于c++ - 使用 sk_X509_pop_free 升级 OpenSSL 会导致编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9402778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com