xcode 重新来过openssl项目历程

本文记录了解决Xcode项目中Undefined symbols for architecture x86_64错误的过程,通过确保使用正确的平台库文件解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

20180703 xcode 重新来过openssl项目

  1. 新建立一个 Command Line Project
  2. 从 lxn 别人给我的他在 ubuntu 下的 openssl 1.0.2o以及他自己写的 client.c,server.c 等 ) 的目录拖入 libssl.a 、 libcrypto.a 和 include 目录
  3. 从 lxn 拖入 client.c ,删除掉自己创建的 main.c
  4. 编译执行,又看到红牌!!!而且是一大堆 Undefined symbols for architecture x86_64
  5. 仔细检查我的 target 配置,看到 General 的 Linked Frameworks and Libraries 已经包含进去了以上 libssl.a 、 libcrypto.a, 检查client.c 里面也没有报语法错误(说明 include 正确)
  6. 仔细核对之前正确过的项目,发现 prohject 的 building setting 里面 all Command 相差好多项目,怀疑是正确编译之后自动建立的 重新建立一个Command Line Project,并且直接运行,然后看到了其他项目,确认以上怀疑!
  7. 既然配置都正确,语法都正确,为什么还是不对?回忆之前的努力,想起来可能是链接的库不是针对 Mac 编译的,对比一下正确的项目的 libssl.a 、 libcrypto.a文件,和从 lxn 拖过来的 libssl.a 、 libcrypto.a,发现问题了!大小都不一样!
  8. 想起来之前是从 mac 系统已经安装运行的openssl 目录 copy 并拖放过来的

openssl version

OpenSSL 1.0.2n  7 Dec 2017

whereis openssl

/usr/bin/openssl

我的 openssl位置

/usr/local/Cellar/openssl/1.0.2n/include/openssl

设置 include (这是网上别人的建议,我操作没有成功,所以,直接整体目录拖过来的)

./configure --prefix=/usr/local CPPFLAGS="-I/usr/local/Cellar/openssl/1.0.2n/include" LDFLAGS="-I/usr/local/Cellar/openssl/1.0.2n/lib"
  1. 重新建立新Command Line Project,拖放 mac 自己的 libssl.a 、 libcrypto.a 和 include
  2. 拖放过来 client.c 以及对应的证书文件,修改 client.c 中证书文件路径
  3. 运行!ok

总结:Undefined symbols for architecture x86_64 错误,链接的libssl.a 、 libcrypto.a库不是你的target平台的!

下一步,找 android 平台的 libssl.a 、 libcrypto.a

转载于:https://my.oschina.net/u/1440971/blog/1841966

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值