Ios Can';在Xcode 4中编译plcrashreporter
在为设备编译时,我可以使用plcrashreporter项目页面上提供的预构建框架,但不能用于模拟器。我有同样的Ios Can';在Xcode 4中编译plcrashreporter,ios,compiler-errors,plcrashreporter,Ios,Compiler Errors,Plcrashreporter,在为设备编译时,我可以使用plcrashreporter项目页面上提供的预构建框架,但不能用于模拟器。我有同样的 我假设预构建的框架不支持模拟器的体系结构,所以我下载了plcrashreporter源代码。我打开了Xcode项目并选择了CrashReporter iOS模拟器>iPhone4.3模拟器目标。当我尝试构建项目时,出现以下错误: libtool: unknown option character `D' in: -D__IPHONE_OS_VERSION_MIN_REQUIRED=
我假设预构建的框架不支持模拟器的体系结构,所以我下载了plcrashreporter源代码。我打开了Xcode项目并选择了
CrashReporter iOS模拟器>iPhone4.3模拟器
目标。当我尝试构建项目时,出现以下错误:
libtool: unknown option character `D' in: -D__IPHONE_OS_VERSION_MIN_REQUIRED=30000
libtool:中的未知选项字符“D”:-D\u IPHONE\u OS\u版本\u MIN\u必需=30000
当我尝试构建大多数其他目标(如设备)时,我会遇到相同的错误
我的下一步是尝试将源文件添加到我的项目中。我不再有上述问题;但是,我在尝试编译时遇到以下错误: fatal error: 'crash_report.pb-c.h' file not found [2] #import "crash_report.pb-c.h" ^ 1 error generated. Command clang failed with exit code 1 致命错误:找不到“crash_report.pb-c.h”文件[2] #导入“crash_report.pb-c.h” ^ 生成1个错误。 命令提示失败,退出代码为1 错误消息中提到的
crash_report.pb-c.h
文件根本不存在;我已经搜索了plcrashreporter源代码树和互联网。因此,我必须假设这个文件应该以某种方式生成,但我不知道如何生成
(注释掉PLCrashReport.m中包含
crash_report.pb-c.h
的那一行会导致许多其他编译错误。)您是正确的,因为文件不正常存在,crash_report.pb-c.c
也不存在,这将是您在此之后的下一个错误
crash_report.pb.h
和crash_report.pb.c
文件是在编译时通过生成规则生成的。您需要将自定义脚本添加到构建过程中以使其生效
首先,确保项目的plcrashreporter文件夹中有protoc-c(plcrashreporter-1.0/Dependencies/protobuf-2.0.3/bin/protoc-c
)。他们把它埋得很深。这就是您的脚本将要运行的内容
然后找到您的crash\u report.proto
文件。这是protoc-c
用于创建丢失文件的主要输入。您可以获取此目录并手动将其放入脚本中,也可以制定规则在每个*.proto
文件上运行脚本。我做后者
然后编辑生成规则,以包含一个运行protoc-c
的脚本,该脚本的标志为--c_out=“${DERIVED_FILES\u DIR}”
和crash_report.proto
文件作为两个输入,这将输出crash_report.pb-c.h
和crash_report.pb-c.c
到与crash_report.proto文件所在目录相同的目录中,您的项目中应该已经可以访问该目录
Xcode 4(及更高版本)中的构建规则位于项目目标的构建规则选项卡下。在所有其他生成规则之前添加一个生成规则。下面是我的Xcode的外观:
你可能得摆弄一下目录