1. error: ‘ASN1_STRING_get0_data’ was not declared in this scope
char const * dns_name = (char const *) ASN1_STRING_get0_data(current_name->d.dNSName);
解决方法:
ASN1_STRING_data 或 ASN1_STRING_get0_data 符号没有声明,是1.01-版与新版不兼容。
ASN1_STRING_data : <= 1.01
ASN1_STRING_get0_data : > 1.01
2. undefined reference to symbol 'GENERAL_NAME_free@@libcrypto.so.10'
/usr/lib64/libcrypto.so.10: error adding symbols: DSO missing from command line
解决方法:
gcc obj/Debug/main.o -L/usr/local/openssl/lib -lssl -lcrypt

文章描述了在使用OpenSSL时遇到的两个编译错误:1)ASN1_STRING_get0_data未声明,这可能是由于版本不兼容,建议使用ASN1_STRING_data代替;2)GENERAL_NAME_free引用未定义,解决方法是正确链接libcrypto.so.10库,并确保-lssl-lcrypto在-ldl-lpthread之前。同时强调了版本匹配和链接顺序的重要性。
最低0.47元/天 解锁文章
6106

被折叠的 条评论
为什么被折叠?



