所以我已经下载了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,我真的不明白这个错误意味着什么。是否有人分别理解我在做什么,我忘记了什么?
提前致谢
答案 0 :(得分:2)
clang-llvm包只包含编译器和优化器。它不包含链接器(ld
),据我所知,它也不包含汇编程序(as
)。
您必须安装这些实用程序,其中最新版本(仍然是2009版本,但是......)可以在Cydia中找到,或者可以从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
标志编译动态库),您将遇到错误,链接器无法找到定义的符号{{1} }。此问题的解决方案是将bundle1.o
目标文件与其他目标文件明确链接。
我不知道你的设备上的工具链上有哪个版本/版本,但是我的安装中遇到了一个错误(我不再记得我从包中得到的地方)。我认为clang / LLVM编译器的代码生成器存在问题,因为如果我在启用优化的情况下编译,任何非平凡的程序都会出现段错误。 (并不是我编写错误的代码,因为我已经尝试编译并运行高度知名的,经过良好测试的库和程序,并且那些也会引发分段错误......)所以,如果你碰巧运行这个错误的版本编译器,然后远离优化。 (如果你不这样做,请告诉我你在哪里找到更好的一个:P)
答案 1 :(得分:1)
尝试CppCode ios应用 - http://www.cppcode.info。它的IDE&在iOS上运行的编译器。不需要jb,不需要互联网