如何交叉编译iOS的clang / llvm?

如何交叉编译iOS的clang / llvm? 我需要得到libclang(.a或.dylib我相信)通过C API在我的iOS应用程序中使用它。

 # Get LLVM/Clang mkdir llvm curl -O http://llvm.org/releases/3.4/llvm-3.4.src.tar.gz tar xzfv llvm-3.4.src.tar.gz cd llvm-3.4/tools/ curl -O http://llvm.org/releases/3.4/clang-3.4.src.tar.gz tar xzfv clang-3.4.src.tar.gz mv clang-3.4 clang cd .. # Assuming Xcode 5.1 (LLVM 3.5+ requires -stdlib=libc++ as well) export CC="clang -arch armv7 -mios-version-min=5.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk" export CXX="clang++ -arch armv7 -mios-version-min=5.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk" mkdir build cd build ../configure \ --prefix=/Users/thomas/tmp/llvm-ios \ --host=arm-apple-darwin11 \ --enable-optimized \ --disable-assertions unset CC CXX # important! (Otherwise the next step will fail) make VERBOSE=1 -j... 

过了一段时间,你会得到:

 /Users/thomas/tmp/llvm-3.4/lib/Support/Unix/Program.inc:46:10: fatal error: 'crt_externs.h' file not found #include <crt_externs.h> // _NSGetEnviron ^ 

注释头文件并将_NSGetEnviron()的调用破解掉(你会得到这三次)

 make install 

在Cydia的https://coolstar.org/publicrepo/中的iOSToolChain

Clang和iOS上的LLVM。

我在一个越狱的设备上使用它来编译用于iOS的C应用程序(ARM 32位或ARM 64位)。

这里有一个很好的参考文章: 从linux命令行编译IOS程序