【发布时间】:2018-11-09 09:24:51
【问题描述】:
我想为客户端和服务器编写一个程序,他们需要在连接之前与证书颁发机构进行连接。 我正在使用 openssl 作为算法。 当我在终端中运行客户端时,出现以下错误:
Undefined symbols for architecture x86_64:
"_EVP_PKEY_assign", referenced from:
generate_key() in Alice-c8763f.o
"_EVP_PKEY_free", referenced from:
generate_key() in Alice-c8763f.o
"_EVP_PKEY_new", referenced from:
generate_key() in Alice-c8763f.o
"_RSA_generate_key", referenced from:
generate_key() in Alice-c8763f.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
实际上客户端首先生成 RSA 密钥并发送给 CA 以获得 x509 证书。 在 CA 代码中,我也收到这些错误:
Undefined symbols for architecture x86_64:
"_ASN1_INTEGER_set", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_EVP_PKEY_free", referenced from:
routine1(void*) in CA-ceff6a.o
"_EVP_sha1", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_PEM_write_PrivateKey", referenced from:
write_to_disk(evp_pkey_st*, x509_st*) in CA-ceff6a.o
"_PEM_write_X509", referenced from:
write_to_disk(evp_pkey_st*, x509_st*) in CA-ceff6a.o
"_X509_NAME_add_entry_by_txt", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_free", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
routine1(void*) in CA-ceff6a.o
"_X509_get_serialNumber", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_get_subject_name", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_gmtime_adj", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_new", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_set_issuer_name", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_set_pubkey", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
"_X509_sign", referenced from:
generate_x509(evp_pkey_st*) in CA-ceff6a.o
ld: symbol(s) not found for architecture x86_64
谁能帮我解决这个问题? 非常感谢。
【问题讨论】:
标签: c++ openssl rsa x509certificate x509