Reason for the compilation error : In function sk_X509_num undefined reference to `OpenSSL_sk_num`
Reason for the compilation error : In function sk_X509_num undefined reference to `OpenSSL_sk_num`
我有一个 P12 文件,我正在尝试以编程方式对其进行解析。我成功地解析了它。
当我独立使用代码并在命令行上使用 -ssl 和 -crypto 时,它工作正常。但是当我在我的应用程序中使用相同的代码时,我得到未定义的引用错误:在函数 sk_X509_num undefined reference to OpenSSL_sk_num
和 In function sk_X509_value undefined reference to OPENSSL_sk_value
下面是我使用的代码片段:
{
Bio *b = Bio_new(BIO_s_mem());
if(b != nullptr)
{
for(int i=0; i< sk_X509_num(ca);i++)
{
if(!PEM_write_bio_X509(b, sk_X509_value(ca,i)))
{
//some log message.....
}
else
{
//some code here
}
}
我在 makefile 中包含了以下标志:LDFLAGS+= -lssl -lcrypto
OPENSSL 版本为 1.1.1g
我终于可以解决我自己的问题了:
函数 sk_num
、sk_value
似乎已被替换为 OpenSSL_sk_num
、OPENSSL_sk_value
。链接存在问题,版本 1.1.g
.
的符号文件中不知何故丢失了符号
我尝试了以下方法:
i) 在命令行上使用 -lssl -lcrypto
。这有效但是当您在应用程序中使用并使用带有选项 -lssl -lcrypto
的 makefile
时,它会失败并显示 error undefined reference
.
ii) 将 SSL
降级为 1.0.2
版本,其中 sk_num
未被 OPENSSL_sk_num
替换,但同样失败。
iii) 成功:因此您需要在使用这些函数的应用程序中为 sk_num
、sk_value
、sk_pop_free
定义函数,我从 SSL 中获取这些函数版本 1.1.n
,这是 1.1 系列中的最新版本。我希望它能帮助面临这个问题的人。我尝试将 SSL
升级到 1.1.n
版本,但它对我不起作用。
我有一个 P12 文件,我正在尝试以编程方式对其进行解析。我成功地解析了它。
当我独立使用代码并在命令行上使用 -ssl 和 -crypto 时,它工作正常。但是当我在我的应用程序中使用相同的代码时,我得到未定义的引用错误:在函数 sk_X509_num undefined reference to OpenSSL_sk_num
和 In function sk_X509_value undefined reference to OPENSSL_sk_value
下面是我使用的代码片段:
{
Bio *b = Bio_new(BIO_s_mem());
if(b != nullptr)
{
for(int i=0; i< sk_X509_num(ca);i++)
{
if(!PEM_write_bio_X509(b, sk_X509_value(ca,i)))
{
//some log message.....
}
else
{
//some code here
}
}
我在 makefile 中包含了以下标志:LDFLAGS+= -lssl -lcrypto OPENSSL 版本为 1.1.1g
我终于可以解决我自己的问题了:
函数 sk_num
、sk_value
似乎已被替换为 OpenSSL_sk_num
、OPENSSL_sk_value
。链接存在问题,版本 1.1.g
.
我尝试了以下方法:
i) 在命令行上使用 -lssl -lcrypto
。这有效但是当您在应用程序中使用并使用带有选项 -lssl -lcrypto
的 makefile
时,它会失败并显示 error undefined reference
.
ii) 将 SSL
降级为 1.0.2
版本,其中 sk_num
未被 OPENSSL_sk_num
替换,但同样失败。
iii) 成功:因此您需要在使用这些函数的应用程序中为 sk_num
、sk_value
、sk_pop_free
定义函数,我从 SSL 中获取这些函数版本 1.1.n
,这是 1.1 系列中的最新版本。我希望它能帮助面临这个问题的人。我尝试将 SSL
升级到 1.1.n
版本,但它对我不起作用。