Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C OpenSSL链接:缺少外部符号BIGNUM\u_C_Linker_Openssl - Fatal编程技术网

C OpenSSL链接:缺少外部符号BIGNUM\u

C OpenSSL链接:缺少外部符号BIGNUM\u,c,linker,openssl,C,Linker,Openssl,我想在多个设备上使用OpenSSL(1.0.1j)的一些功能。一个要求是最小化代码的大小。OpenSSL代码静态链接到我的。我只使用RSA\u public\u decrypt、BIO和PEM->RSA解码方法。为了实现这一点,我目前正在编译OpenSSL,而不是采用标准的自动工具方式。我已经删除了一些我从未使用过的代码。我唯一无法解析的符号是_BIGNUM_it 它在asn1t.h中声明为: DECLARE_ASN1_ITEM(BIGNUM) 及 它用于rsa_asn1.c: ASN1_SI

我想在多个设备上使用OpenSSL(1.0.1j)的一些功能。一个要求是最小化代码的大小。OpenSSL代码静态链接到我的。我只使用RSA\u public\u decrypt、BIO和PEM->RSA解码方法。为了实现这一点,我目前正在编译OpenSSL,而不是采用标准的自动工具方式。我已经删除了一些我从未使用过的代码。我唯一无法解析的符号是_BIGNUM_it

它在
asn1t.h
中声明为:

DECLARE_ASN1_ITEM(BIGNUM)

它用于rsa_asn1.c:

ASN1_SIMPLE(RSA, n, BIGNUM),
ASN1_SIMPLE(RSA, e, BIGNUM),
决议如下:

#define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type)

我搜索了其他那样使用的符号。它们是使用
IMPLEMENT\u ASN1\u TYPE()
实现的。我用BIGNUM搜索了所有OpenSSL代码,没有找到任何类似的东西。我还尝试在代码中使用implementation_ASN1_TYPE(BIGNUM),这导致了数千个错误

这是从外面提供的吗?我会错过一个.c文件吗?如果是,哪一个


谢谢你的帮助

我在
asn1/x_bignum.c
中找到了符号

#define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type)
#define ASN1_EX_TYPE(flags, tag, stname, field, type) { \
    (flags), (tag), offsetof(stname, field),\
    #field, ASN1_ITEM_ref(type) }
#define ASN1_ITEM_ref(iptr) (&(iptr##_it))