C++ 如何将现有的OpenSsl项目导入Xcode

C++ 如何将现有的OpenSsl项目导入Xcode,c++,xcode,openssl,C++,Xcode,Openssl,我想修改现有的Openssl项目。所以我从GitHub下载了openssl的源代码 并按照说明将Openssl包含到Xcode中 然而,当我试图从OpenSsl项目构建一个文件(enc.c)时,它遇到了6个错误和7个警告 /usr/local/opt/openssl/include/openssl/ecdsa.h /usr/local/opt/openssl/include/openssl/ecdsa.h:295:14: Parameter 'flags' not found in the fu

我想修改现有的Openssl项目。所以我从GitHub下载了openssl的源代码 并按照说明将Openssl包含到Xcode中

然而,当我试图从OpenSsl项目构建一个文件(enc.c)时,它遇到了6个错误和7个警告

/usr/local/opt/openssl/include/openssl/ecdsa.h
/usr/local/opt/openssl/include/openssl/ecdsa.h:295:14: Parameter
'flags' not found in the function declaration
/usr/local/opt/openssl/include/openssl/ecdsa.h:301:14: Parameter                

'ecdsa_method' not found in the function declaration
/usr/local/opt/openssl/include/openssl/ecdsa.h:302:14: Parameter 'name'    not found in the function declaration

/Users/maggie/Documents/aes/openssl-master/apps/apps.h
/Users/maggie/Documents/aes/openssl-master/apps/apps.h:421:1: Unknown type name '__owur'
/Users/maggie/Documents/aes/openssl-master/apps/apps.h:421:8: Expected identifier or '('
/Users/maggie/Documents/aes/openssl-master/apps/apps.h:432:1: Unknown type name '__owur'
/Users/maggie/Documents/aes/openssl-master/apps/apps.h:432:8: Expected identifier or '('
/Users/maggie/Documents/aes/openssl-master/apps/progs.h
/Users/maggie/Documents/aes/openssl-master/apps/progs.h:25:1: Type specifier missing, defaults to 'int'

/Users/maggie/Documents/aes/openssl-master/apps/enc.c
/Users/maggie/Documents/aes/openssl-master/apps/enc.c:542:47: Expected ')'
/Users/maggie/Documents/aes/openssl-master/apps/enc.c:543:47: Expected ')'
/Users/maggie/Documents/aes/openssl-master/apps/enc.c:427:33: Implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int'
/Users/maggie/Documents/aes/openssl-master/apps/enc.c:597:28: Implicit declaration of function 'OPENSSL_hexchar2int' is invalid in C99
/Users/maggie/Documents/aes/openssl-master/apps/enc.c:582:9: Implicit conversion loses integer precision: 'unsigned long' to 'int'    
enc.c的源代码是

有人遇到过这个问题吗?
谢谢。

您必须使用OpenSSL的
Configure
脚本配置库。它生成各种[递归]makefile和特定于平台的头文件,如
opensslconf.h
bn.h
。配置后,应使用
make
进行构建。如果您选择不这样做,那么您的工作就是正确设置项目,包括相同的
#定义
enc.c
openssl
目标的一部分,而不是
libcrypto
libssl
目标。您应该检查OpenSSL
Configure
生成的makefile,然后将它们转换为Xcode。@jww,谢谢您的指针。我使用OpenSsl配置脚本配置了库。配置之后,我使用
Make
构建了。Make运行时没有任何错误消息,因此我假设它已成功构建和安装。之后,我将/usr/local/include文件夹添加到
User Header搜索路径中
,并将/usr/local/bin/openssl拖动到Xcode中的
链接二进制文件与库
。它仍然遇到缺少头文件的错误。然后,我手动将那些丢失的头文件拖到项目中,它遇到了
Apple Mach-O链接器错误
。我是否遗漏了任何步骤?您需要库
libssl.a
libcrypo.a
;不是
openssl
openssl
是可执行文件
libssl.a
libcrypo.a
分别是SSL和加密库。它现在正在工作。再次感谢!