我总是很犹豫在此处向杀手级论坛添加一个全新的问题,但是我没有看到任何与该错误类似的东西。
似乎在编译我的.m文件之一时,lang铛崩溃了。如果有人看到或知道以下任何解决方案,我将非常有义务。
当我使用 XCode 4.4.1 版本配置为 armv6 构建时,会发生此错误
但是,当我为armv7,armv7s或i386的调试配置或发行版中的 armv6 生成时,不会出现。
具体错误是“ObjC ARC收缩”:
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module '/Users/Me/Documents/ThisProject/iOS/..../ClassFoo.m'.
4. Running pass 'ObjC ARC contraction' on function '@"\01-[ClassFoo evalJS:]"'
clang: error: unable to execute command: Segmentation fault: 11
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang: note: diagnostic msg: Please submit a bug report to http://developer.apple.com/bugreporter/ and include command line arguments and all diagnostic information.
在../Intermediaries/Project.build/armv6/文件夹中,我看到:
ClassFoo.dia
而且我应该看到(像所有周围的文件一样)
ClassFoo.d
ClassFoo.dia
ClassFoo.o
这是clang堆栈的前4个,以防有人识别其中的内容:
0 clang 0x00000001010536f2 main + 17107682
1 clang 0x0000000101053b79 main + 17108841
2 libsystem_c.dylib 0x00007fff93c428ea _sigtramp + 26
3 libsystem_c.dylib 0x00007fff93c7a54e tiny_malloc_from_free_list + 1078
编辑:最近尝试时,我还注意到我收到有关-fno-objc-arc标志的投诉-也许编译器符号链接(symbolic link)指向错误的二进制文件?
提前致谢,
迈尔斯
最佳答案
感谢您的关注,很抱歉必须自己回答这个问题,但是我尝试过的其他解决方案都没有成功。我已尽力在这里记录我的冒险经历,以此作为指南,希望对其他人有所帮助。
简短版本:
原始错误。
Xcode使用的
较长版本:
在我尝试解决此问题的许多令人沮丧的尝试中,例如搜索SO论坛,搜索Apple dev论坛,谷歌搜索,无休止地摆弄项目设置,将较早的SDK复制到Xcode.app程序包,发布此问题,提交错误与苹果公司等进行报告。广告无限-意思是,“无限等等”似乎并没有揭示任何相关信息,或者只是一小部分信息。
最终,这个解决方案的配方花了一个沮丧而坚定的开发人员,并在一个漫长的夜晚中完成了一切。
那么操作方法在哪里?
(在这里,兄弟)
大约有12个步骤,所以不要忘记图像下方的最后一个步骤!
免责声明:这是我自己的解决方案,对我来说非常有用,但是如果您不确定正在发生的事情或您在做什么,请非常小心并意识到,对于可能造成的任何损失我不承担任何责任。通过尝试执行以下步骤。就是说,你去!
/PATH_TO_YOUR_Xcode_4.4.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk
/PATH_TO_YOUR_Xcode_4.5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
.xcspec
文件:/PATH_TO_YOUR_Xcode_4.5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications
armv6
:libclang_rt*.a
文件来处理这些拱门的编译。在终端中更容易完成此步骤。输入以下命令:确保备份已复制,并且路径或键入中没有任何错误!
cd /PATH_TO_YOUR_Xcode_4.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/4.2/lib/darwin
sudo mkdir armv6_extractions
lipo -extract armv6 -output armv6_extractions/libclang_rt.ios.armv6.a libclang_rt.ios.a
lipo -extract armv6 -output armv6_extractions/libclang_rt.profile_ios.armv6.a libclang_rt.profile_ios.a
lipo -extract armv6 -output armv6_extractions/libclang_rt.cc_kext.armv6.a libclang_rt.cc_kext.a
sudo cp -R armv6_extractions /PATH_TO_YOUR_Xcode_4.5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/4.2/lib/darwin
cd /PATH_TO_YOUR_Xcode_4.5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/4.2/lib/darwin
sudo mkdir originals
sudo cp libclang_rt.ios.a originals/
sudo cp libclang_rt.cc_kext_ios5.a originals/
sudo cp libclang_rt.profile_ios.a originals/
lipo -create -output libclang_rt.ios.a armv6_extractions/libclang_rt.ios.armv6.a originals/libclang_rt.ios.a
lipo -create -output libclang_rt.cc_kext_ios5.a armv6_extractions/libclang_rt.cc_kext.armv6.a originals/libclang_rt.cc_kext_ios5.a
lipo -create -output libclang_rt.profile_ios.a armv6_extractions/libclang_rt.cc_kext.armv6.a originals/libclang_rt.profile_ios.a
^ ...我在这里写了“11” ...为什么显示为“1”?
armv6
添加到Valid Architectures
armv6
添加到Architectures
Base SDK
设置为iOS 5.x
(现在下拉菜单中列出的所有内容)好吧,我认为仅此而已。
如果有人看到需要进行的任何编辑,请这样做,我欢迎任何人必须在这里提供的任何反馈。
如果出了点问题,您可以随时重新安装Xcode,然后重试(或不尝试)。
祝你好运。
关于objective-c - ObjC ARC收缩(c铛崩溃),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13410172/