【问题标题】:Xcode4.5 assembler fails to compile files that Xcode4.4 handled perfectlyXcode4.5 汇编器无法编译 Xcode4.4 完美处理的文件
【发布时间】:2012-10-08 10:07:26
【问题描述】:

将 xcode 更新到 4.5 版本后出现错误

命令 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang 退出代码 1 失败

我在更新后读到了这样的错误,但是在目标的构建设置中更改架构并没有帮助。它可以在模拟器上运行,但不能在设备上运行。

整个错误

编译C /Users/psitkowski/Library/Developer/Xcode/DerivedData/Jasiu2-gskaidiujznurtdqnebvtogjtdnd/Build/Intermediates/Jasiu2.build/Debug-iphoneos/Jasiu2.build/Objects-normal/armv7/maxvid_decode_arm.o Classes/AVAnimator/maxvid_decode_arm.s normal armv7 assembler-with-cpp com.apple.compilers.llvm.clang.1_0.compiler cd /用户/psitkowski/Xcode/ksiazki/kopie/Jasiu2 setenv LANG en_US.US-ASCII setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/ usr/sbin:/sbin"

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x assembler-with-cpp -arch armv7 -fmessage-length=0 -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wreturn-type -Wformat -Wno-missing -大括号 -W括号 -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno -four-char-constants -Wno-conversion -Wno-shorten-64-to-32 -Wno-newline-eof -DDEBUG=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer /SDKs/iPhoneOS6.0.sdk -Wdeprecated-declarations -g -Wno-sign-conversion -miphoneos-version-min=5.1 -iquote /Users/psitkowski/Library/Developer/Xcode/DerivedData/Jasiu2-gskaidiujznurtdqnebvtogjtdnd/Build/Intermediates/Jasiu2.build/Debug-iphoneos /Jasiu2.build/Jasiu2-generated-files.hmap -I/Users/psitkowski/Library/Developer/Xcode/DerivedData/Jasiu2-gskaidiujznurtdqnebvtogjtdnd/Build/Intermediates/Jasiu2.build/Debug-iphoneos/Jasiu2.build/Jasiu2-own-target-headers.hmap -I/Users/psitkowski/Library/Developer/Xcode/DerivedData/Jasiu2-gskaidiujznurtdqnebvtogjtdnd/Build/Intermediates/Jasiu2.build/Debug-iphoneos/Jasiu2.build/Jasiu2-all-target-headers.hmap -iquote /Users/psitkowski/Library/Developer/Xcode/DerivedData/Jasiu2-gskaidiujznurtdqnebvtogjtdnd/Build/Intermediates/Jasiu2.build/Debug-iphoneos/Jasiu2.build/Jasiu2-project-headers.hmap -I/用户/psitkowski/库/开发人员/Xcode/DerivedData/Jasiu2-gskaidiujznurtdqnebvtogjtdnd/Build/Products/Debug-iphoneos/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Users/psitkowski/Library/Developer/Xcode/DerivedData/Jasiu2-gskaidiujznurtdqnebvtogjtdnd/Build/Intermediates/Jasiu2.build/Debug-iphoneos/Jasiu2.build/DerivedSources/armv7 -I/Users/psitkowski/Library/Developer/Xcode/DerivedData/Jasiu2-gskaidiujznurtdqnebvtogjtdnd/Build/Intermediates/Jasiu2.build/Debug-iphoneos/Jasiu2.build/DerivedSources -F/Users/psitkowski/Library/Developer/Xcode/DerivedData/Jasiu2-gskaidiujznurtdqnebvtogjtdnd/Build/Products/Debug-iphoneos -MMD -MT 依赖项 -MF /Users/psitkowski/Library/Developer/Xcode/DerivedData/Jasiu2-gskaidiujznurtdqnebvtogjtdnd/Build/Intermediates/Jasiu2.build/Debug-iphoneos/Jasiu2.build/Objects-normal/armv7/maxvid_decode_arm.d --serialize-diagnostics /Users/psitkowski/Library/Developer/Xcode/DerivedData/Jasiu2-gskaidiujznurtdqnebvtogjtdnd/Build/Intermediates/Jasiu2.build/Debug-iphoneos/Jasiu2.build/Objects-normal/armv7/maxvid_decode_arm.dia -c /Users/psitkowski/Xcode/ksiazki/kopie/Jasiu2/Classes/AVAnimator/maxvid_decode_arm.s -o /Users/psitkowski/Library/Developer/Xcode/DerivedData/Jasiu2-gskaidiujznurtdqnebvtogjtdnd/Build/Intermediates/Jasiu2.build/Debug-iphoneos/Jasiu2.build/Objects-normal/armv7/maxvid_decode_arm.o

/Users/psitkowski/Xcode/ksiazki/kopie/Jasiu2/Classes/AVAnimator/maxvid_decode_arm.s:65:2: 错误:无效指令 strneh r8, [r10], #2 ^

... 大约100行如上 ... /Users/psitkowski/Xcode/ksiazki/kopie/Jasiu2/Classes/AVAnimator/maxvid_decode_arm.s:474:2: 错误:无效指令 stmeqia r10!, {r0, r1} ^ 命令 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang 退出代码 1 失败

我之前遇到过这样的错误,当时我忘记在构建阶段添加 libz.dylib。 你知道如何解决它吗?

非常感谢,

【问题讨论】:

  • 你解决了吗,我也有同样的问题

标签: objective-c ios xcode simulator xcode4.5


【解决方案1】:

是的,Xcode 4.5 进行了一些更改,破坏了 ASM 代码的编译。修复很简单,只需在 AVAnimator 中 maxvid_decode_arm.s 文件的编译选项中添加 -no-integrated-as 标志即可。

像这样:

在列出文件的左侧窗口中选择项目文件(它是顶部带有蓝色图标的那个)。

在“目标”列表中选择您的目标。

选择“构建阶段”选项卡。

双击 maxvid_decode_arm.s,然后通过粘贴到出现的列表中添加 -no-integrated-as。

【讨论】:

  • 谢谢 - 这真的很有帮助:对于谷歌,我们也需要将它添加到 Jscocoa 中
  • maxvid_decode_arm.s 我不能在 xcode 4.5 的 build Phases 选项卡中使用这个关键字
  • maxvid_decode_arm.s 是目标列表中特定 .s ARM ASM 文件的名称。如果您在自己的包含 ARM ASM 代码的项目中遇到此编译问题,请在您的项目中选择特定的 .s 文件,然后添加此 -no-integrated-as。
【解决方案2】:

错误很明显——max_vid_decode.s 中的两条汇编指令格式不正确:

strneh r8, [r10], #2
stmeqia r10!, {r0, r1}

可能汇编器规范已经收紧,之前稍微不合规的代码也能正常工作。找到 armv7 汇编器文档并阅读这两个命令,并使它们兼容。

【讨论】:

  • 我在写胎面时犯了一个错误,因为我没有复制整个错误,而是几乎整个。我错过了这样的行 >/Users/psitkowski/Xcode/ksiazki/kopie/Jasiu2/Classes/AVAnimator/maxvid_decode_arm.s:65:2: error: invalid instruction strneh r8, [r10], #2 ^ 因为编译器看到错误在每条指令中
  • 你真的需要完全重构这个问题。我相信您所说的标题会像“Xcode4.5 汇编器无法编译 Xcode4.4 完美处理的文件”之类的标题。我建议您也将其发布在 Apple Xcode listserv 上。
【解决方案3】:

Workflow for writing ARM assembly code on the iphone。其实我认为是我回答它的开发人员

在编译阶段的编译器标志中添加 -no-integrated-as。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 2012-05-08
    • 2023-03-08
    相关资源
    最近更新 更多