因此,我已经下载了LLVM + Clang并在iPhone上设置了iOS SDK(7.0)。当我尝试编译一个名为testProj的测试项目时,该项目位于/ testProj并显示以下行:
xcrun -sdk iphoneos clang
clang -v -ObjC -arch armv7s -mios-version-min=7.0 -isysroot/private/var/iPhoneOS7.0.sdk /testProj/testProj/main.m
我收到此错误:
clang: error: unable to execute command: posix_spawn failed: No such file or directory
它完美地编译了包括UIKit.framework引用在内的main.m,并且我严重不明白此错误的含义。有人知道我在做什么错了吗?我在这里忘记了什么?
提前致谢
clang-llvm软件包仅包含编译器和优化器。据ld
我所知,它不包含链接器(),也不包含汇编器(as
)。
您必须安装这些实用程序,可以在Cydia中找到其最新版本(尽管仍然是2009年构建……),也可以从Saurik的存储库中下载:odcctools_286-8_iphoneos-arm.deb
为了解决一些常见错误,以下是我想分享的更多提示:
from
-> to
):$(SYSROOT)/usr/lib/libgcc_s.dylib -> libgcc.dylib
libSystem.B.dylib -> libSystem.dylib
libobjc.A.dylib -> libobjc.dylib
(也许为了使C ++编译正常工作,有必要进一步弄乱C ++标准库,我还没有尝试过。)
完成所有这些操作后,您将能够编译普通的可执行文件。但是,如果您愿意对MobileSubstate进行调整(因此您正在使用该-dynamiclib
标志编译动态库),则会在连接器找不到定义的符号时遇到错误bundle1.o
。该问题的解决方案是将$(SYSROOT)/usr/lib/bundle1.o
目标文件与其他目标文件一起显式链接。
我不知道您在设备上工具链上的哪个版本/版本,但是我在安装中遇到了一个错误(我不再记得从软件包中获得的位置)。我认为clang / LLVM编译器的代码生成器存在问题,因为如果我在启用优化的情况下进行编译,则任何不重要的程序都会出现段错误。(这并不是我编写错误的代码,因为我尝试编译并运行信誉良好,经过良好测试的库和程序,而这些库和程序也会引发分段错误...)因此,如果您碰巧运行了此错误版本的编译器,然后远离优化。(如果没有,请告诉我您在哪里找到了更好的:P)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句