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 -lcrypto -ldl -lpthread -o main
原因分析:
在链接这个库的时候一定要注意2个问题:
1)openssl库的版本问题,请直接链到你需要的openssl库路径,比如我的就是/usr/local/openssl/lib,
2)注意-lssl -lcrypto要写在-ldl -lpthread前面,这四个必须要。