【问题标题】:md5.h File Not Found error Xcode 7 for Mac applicationmd5.h File Not Found error Xcode 7 for Mac 应用程序
【发布时间】:2016-01-05 00:11:54
【问题描述】:

我正在尝试使用 openSSL 库中的 md5 模块。因此,在我的一个标题中,我通过如下方式包含了 openssl 库:

#include <openssl/md5.h>

但是 Xcode 给我消息 md5.h 文件未找到。我进入我的 /usr/include 并确认 openssl/md5.h 存在。

以下是我尝试解决的问题:

  • 我清理了我的项目
  • 确保在框架/库中包含 libcrypto.dylib 部分
  • 我已将 /usr/include/ 包含在构建设置中的用户标题搜索路径和标题搜索路径中,并将其设置为递归搜索子目录

我目前运行的是 OS X 10.10.5,我的 Xcode 版本是 7.0.1

【问题讨论】:

  • 考虑使用 Common Crypto,它是 Apple 提供的 Security.framework 的一部分。在 iPhone 6s 上,1,000,000 字节的速度非常快 3.644 毫秒。它也通过了 FIPS-140-2 验证。一般只有几行代码。此外,如果可能,请考虑 SHA-256,MD5 不适合新工作。
  • 不幸的是,我正在从事的项目,我继承了以前开发人员的代码,并且试图重新编写他们现有的许多代码并不是一个可行的解决方案。
  • 啊,又是一天,又是一次成功的攻击!我喜欢阅读成功的漏洞利用,而这正是很多人的开始。公司一直推迟安全更新,直到他们成为目标。我刚刚在 Common Crypto MD5 上运行了计时,在过去四年中,iPhone 的速度提高了 6 倍。我可以在 iPhone6s 上每秒处理 250K MD5 典型密码哈希,因此我可以在一秒钟内处理 250K 潜在密码。不是那么安全。 SHA-256 适用于文件哈希等,但不适用于密码,因为 PBKDF2 有大约一百万次迭代。
  • @zaph,我完全同意。然而,这只是一个学校项目。
  • 啊,那就更好了,学校教用MD5,更多的exploit来了。

标签: c++ objective-c xcode macos osx-yosemite


【解决方案1】:

我终于明白了。在最新版本的 Xcode 中,显然它不会在 /usr/include/ 中查找。我什至尝试将其添加到用户标头搜索路径中,但最终引发了更多错误。

所以我不得不手动复制到 Xcode 自己的内部 usr 目录中:

/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include

复制完 openssl 文件夹后,重新启动 xcode,错误就消失了。我不知道为什么苹果决定将开发者的文件夹移动到应用程序本身中,或者为什么它不像 gcc/g++ 那样只在 /usr/ 文件夹中查找,但这是一种适用于我的解决方法。

【讨论】:

  • 嗨,我正在尝试解决同样的问题。从哪里可以找到 openssl 文件夹。我安装了新硬盘。所以一切都是全新安装的。在早期的硬盘中,我有 xcode7.2。但它在那里工作。现在我在新结账时遇到了这个问题。
  • 所以我解决它的方法是我从/usr/include/复制文件并进入应用程序包并复制到他们的usr目录中。如果您安装了 el capitan,则必须从苹果的开发者网站下载最新版本。
【解决方案2】:

您需要从此处安装 Xcode 命令行工具以获取您的确切 Xcode 版本: https://developer.apple.com/downloads/

然后,openssl 源将安装在 /usr/include 中。

此外,您需要通过在链接器的标志中添加“-lcrypto”和“-lssl”(如果您也需要 SSL)来链接 openssl

【讨论】:

  • 就像我之前提到的,我已经安装了开发者工具并验证了 /usr/include/ 目录存在。我不知道我必须传递那些链接器标志,谢谢。
  • 实际上,您并没有说您已经安装了“命令行工具”包(但我推断您这样做了,因为您在 /usr/include/ 中有 openssl 标头)。我在回答其他开发人员时从这一点开始,这些开发人员可能会收到关于缺少一个 openssl 标头的相同消息。
  • 在哪里添加这个标志。我尝试了其他链接器标志。但是没有用。
猜你喜欢
  • 2014-10-05
  • 2020-11-28
  • 1970-01-01
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
  • 2023-02-19
  • 1970-01-01
  • 2020-03-08
相关资源
最近更新 更多