3

我正在尝试将CocoaHTTPServer添加到我的项目中。我在路上遇到了很多问题——我的问题(将 CocoaHTTPServer 添加到项目中(并让它工作))仍然存在——但我也将我在路上遇到的错误和解决方案包括在内,以供其他人参考。

首先,我查看了有关添加框架的教程,但它看起来不像框架。

接下来我右键单击我的项目(在左侧边栏上),并使用“添加文件”手动添加它。我按照SimpleHTTPServer示例进行操作,但出现“cocoa/cocoa.h”未找到错误。我四处搜索,发现 Cocoa 是用于 mac 而不是 iOS。但是 CocoaHTTPServer 描述也谈到了 iOS 应用程序,所以我只是删除了示例文件夹(如果我记得,错误来自DynamicHTTPServer示例。

然后我收到“找不到词汇或预处理器问题 libxml/parser.h”错误。我尝试将其添加为框架,但这不起作用。我找到了关于将 libxml 添加到标头搜索路径的本教程(最后),但我最终遇到了 46 个“Apple Mach-O Linker Error _CFHTTPMessage ...”错误,我决定在这里问我的问题。我尝试了这个答案,但得到了许多 Apple Mach-O 链接器错误

我添加了 CFNetwork 和安全框架(项目 => 构建阶段 => 将二进制文件与库链接),并留下了 2 个错误:

ld: warning: path '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/usr/lib/libxml2.dylib' following -F not a directory
Undefined symbols for architecture i386:
  "_NSlog", referenced from:
      -[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我看到 i386 是英特尔的,而不是 iDevices 上的 ARM 架构。然而,真正的问题是我拼错了NSLog(仔细看——错误消息中没有大写)。当我用谷歌搜索时 - 其他可能的原因可能是缺少框架。

现在它编译了。当我运行示例应用程序时,我得到“服务器在 X 端口上启动”,当我去时,localhost:X我得到欢迎/成功屏幕。当我在我的项目上做同样的事情时,我仍然会收到“服务器在 X 端口上启动”消息,但是当我转到localhost:X浏览器时会给出“无法连接”消息。XCode 控制台中没有错误。

没有错误,[httpServer start:&error]并且httpServer.isRunning是真实的。


那么将 CocoaHTTPServer 添加到我的项目中的最佳方法是什么?就干净的设置而言 - 例如,当我检查示例iPhone 项目时,我没有看到任何添加 libxml 的混乱步骤 - 我什至在任何地方都看不到 libxml。在配置一切方面,使其真正工作并提供文件。现在,我怀疑可能需要启用一些项目设置才能使其真正成为服务器。

4

1 回答 1

2

While adding the external files, have you checked your project as a "Build Target"?

A common Mistake

于 2013-06-14T15:43:37.753 回答