How to cross-compile clang/llvm for iOS? I need to get libclang (.a or .dylib i believe) to use it via C API in my iOS app.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
# 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... After a while you will get:
/Users/thomas/tmp/llvm-3.4/lib/Support/Unix/Program.inc:46:10: fatal error: 'crt_externs.h' file not found #include // _NSGetEnviron ^ Comment the header file and hack the call to _NSGetEnviron() out (you'll get this three times)
make install 回答2:
iOSToolChain in the https://coolstar.org/publicrepo/ in Cydia.
Clang and LLVM on iOS.
I used it on a jailbroken device to compile C apps for iOS (ARM 32 bit or ARM 64 bit).
There is a good reference post here: Compile IOS program from linux commandline