64位模拟器的Xcode Mach-O链接器错误

64位模拟器的Xcode Mach-O链接器错误,xcode,64-bit,x86-64,socketrocket,Xcode,64 Bit,X86 64,Socketrocket,我一直在用Xcode开发iOS应用程序。它在常规模拟器中编译并运行得很好,但当我将模拟器设备切换到64位时,它失败了,出现了13个新警告和37个新错误,我认为所有这些都与我正在使用的名为ObjectiveDDP()的外部库有关。人们也有类似的问题,但我的理解是,他们应该在最近发布的框架更新中得到修复,但在我这方面,这个更新是没有用的。我正在使用的第二个框架是SocketRocket(),但我不认为这是给定Xcode输出的罪魁祸首 此外,很明显,许多人都有过这样的Mach-O错误,这些错误来自与6

我一直在用Xcode开发iOS应用程序。它在常规模拟器中编译并运行得很好,但当我将模拟器设备切换到64位时,它失败了,出现了13个新警告和37个新错误,我认为所有这些都与我正在使用的名为
ObjectiveDDP
()的外部库有关。人们也有类似的问题,但我的理解是,他们应该在最近发布的框架更新中得到修复,但在我这方面,这个更新是没有用的。我正在使用的第二个框架是
SocketRocket
(),但我不认为这是给定Xcode输出的罪魁祸首

此外,很明显,许多人都有过这样的Mach-O错误,这些错误来自与64位不兼容的框架。然而,我觉得这是我的文件组织的一个问题。尽管如此,我还认为首要问题是:
忽略文件/path/to/project/ObjectiveDDP/libcrypto.a,在文件/path/to/project/ObjectiveDDP/libcrypto.a中缺少所需的体系结构x86\u 64
。有没有办法通过添加该体系结构来解决该文件中的此问题?根据对类似问题的回答,我尝试将构建设置体系结构更改为标准体系结构(armv7、armv7s、arm64),并再次检查是否满足其他依赖项

以下是错误的一部分:

Undefined symbols for architecture x86_64:
  "_BN_CTX_free", referenced from:
      _srp_verifier_new in srp.o
      _srp_user_start_authentication in srp.o
      _meteor_user_generate_kgx in srp.o
      _meteor_user_generate_aux in srp.o
      _meteor_user_generate_S_string in srp.o
  "_BN_CTX_new", referenced from:
      _srp_verifier_new in srp.o
      _srp_user_start_authentication in srp.o
      _meteor_user_generate_kgx in srp.o
      _meteor_user_generate_aux in srp.o
      _meteor_user_generate_S_string in srp.o
      _srp_user_process_meteor_challenge in srp.o
  "_BN_add", referenced from:
      _srp_verifier_new in srp.o
      _meteor_user_generate_aux in srp.o
  "_BN_bin2bn", referenced from:
      _srp_verifier_new in srp.o
      _H_nn in srp.o
      _meteor_user_generate_u in srp.o
      _meteor_user_generate_x in srp.o
      _meteor_user_generate_k in srp.o
      _meteor_user_generate_M_string in srp.o
      _meteor_user_generate_HAMK in srp.o
      ...
以及Xcode中错误的屏幕截图:

在我的研究之后,我仍然想知道这是否只是一个模拟器问题,当在物理iphone5s上进行测试时,它会自行解决,以及如何简单地消除这些错误?这里有什么建议文件组织问题吗?另外两个警告是:

ld:警告:找不到选项的目录 “-L/path/to/place/projectname/projectname/ObjectiveDDP”ld:警告: 找不到选项的目录 “-L/path/to/place/projectname/SocketRocket/ObjectiveDDP”

这两个路径都不存在,但我想我通过删除文件夹,将它们移动到垃圾箱,然后重新添加来纠正它


如有任何见解,将不胜感激

看起来像是
libcrypto。ObjectivePP包中包含的
不是针对64位arch编译的。如果您需要64位,此答案看起来将帮助您获取该文件:

如果没有,您可以编译自己的应用程序,而不需要64位支持


64位刚刚添加到Xcode 5.1的默认值中。您可以将自己项目中的体系结构设置为
$(ARCHS_STANDARD_32_BIT)
以删除它并返回5.0行为。

它看起来像
libcrypto。ObjectivePP包中包含的
不是为64位arch编译的。如果您需要64位,此答案看起来将帮助您获取该文件:

如果没有,您可以编译自己的应用程序,而不需要64位支持


64位刚刚添加到Xcode 5.1的默认值中。您可以将自己项目中的体系结构设置为
$(ARCHS_STANDARD_32_BIT)
以删除它并返回5.0行为。

它看起来像
libcrypto。ObjectivePP包中包含的
不是为64位arch编译的。如果您需要64位,此答案看起来将帮助您获取该文件:

如果没有,您可以编译自己的应用程序,而不需要64位支持


64位刚刚添加到Xcode 5.1的默认值中。您可以将自己项目中的体系结构设置为
$(ARCHS_STANDARD_32_BIT)
以删除它并返回5.0行为。

它看起来像
libcrypto。ObjectivePP包中包含的
不是为64位arch编译的。如果您需要64位,此答案看起来将帮助您获取该文件:

如果没有,您可以编译自己的应用程序,而不需要64位支持


64位刚刚添加到Xcode 5.1的默认值中。您可以将自己项目中的体系结构设置为
$(ARCHS_STANDARD_32_BIT)
,以删除它并返回到5.0行为。

确定了它。我不需要64位支持,所以就像你建议的那样,我改变了架构。感谢您的澄清;我想我的困惑是我认为我需要支持64位的iphone5s。干杯搞定了。我不需要64位支持,所以就像你建议的那样,我改变了架构。感谢您的澄清;我想我的困惑是我认为我需要支持64位的iphone5s。干杯搞定了。我不需要64位支持,所以就像你建议的那样,我改变了架构。感谢您的澄清;我想我的困惑是我认为我需要支持64位的iphone5s。干杯搞定了。我不需要64位支持,所以就像你建议的那样,我改变了架构。感谢您的澄清;我想我的困惑是我认为我需要支持64位的iphone5s。干杯