Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Can';在Xcode 4中编译plcrashreporter_Ios_Compiler Errors_Plcrashreporter - Fatal编程技术网

Ios Can';在Xcode 4中编译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项目页面上提供的预构建框架,但不能用于模拟器。我有同样的


我假设预构建的框架不支持模拟器的体系结构,所以我下载了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的外观:

你可能得摆弄一下目录