Android-arm的交叉编译
我正在尝试为Android arm交叉编译llvm/clang 我将CC/CXX变量导出到arm linux AndroidABI交叉编译器,然后从构建文件夹执行:Android-arm的交叉编译,android,android-ndk,clang,cross-compiling,llvm-clang,Android,Android Ndk,Clang,Cross Compiling,Llvm Clang,我正在尝试为Android arm交叉编译llvm/clang 我将CC/CXX变量导出到arm linux AndroidABI交叉编译器,然后从构建文件夹执行: cmake -G "Unix Makefiles" --target arm-linux-androideabi --sysroot=$NDK/platforms/android-21/arch-arm/ ../llvm 生成文件夹与llvm源代码位于同一目录中 我得到一个错误: rm-linux-androideabi-g++
cmake -G "Unix Makefiles" --target arm-linux-androideabi --sysroot=$NDK/platforms/android-21/arch-arm/ ../llvm
生成文件夹与llvm源代码位于同一目录中
我得到一个错误:
rm-linux-androideabi-g++: error: unrecognized command line option '-m32'
我知道,它与g++multilib
forarmlinux
有关,但我在NDK中找不到它
我也尝试了所有列出的步骤,向导发现,没有运气
任何帮助都将不胜感激。谢谢
编辑:
现在我使用以下命令:
cmake-G“Unix Makefiles”--前缀=../outarm--target
arm-linux-androideabi--sysroot=$NDK/platforms/android-21/arch-arm/
-DCMAKE\u BUILD\u TYPE=Release-DLLVM\u ENABLE\u PIC=False-DCMAKE\u CROSSCOMPILING=True-DLLVM\u TABLEGEN=../osxbuild/bin/llvm tblgen-DCLANG\u TABLEGEN=../osxbuild/bin/clang tblgen-DLLVM\u TARGET\u ARCH=ARM-DLLVM\u TARGETS\u TO\u BUILD=ARM../llvm
编译现在开始,但在14%时停止,出现以下错误:
rm-linux-androideabi-g++: error: unrecognized command line option '-m32'
arm-linux-AndroidABI-g++:错误:无法识别的命令行选项
“-捆绑”
编辑2:
我删除了所有相对路径到绝对路径。
并将编译器从gcc更改为clang。Clang识别-bundle
,但不使用它。现在出现错误的完整命令是:
命令:
cmake-G“Unix生成文件”
-DCMAKE\u INSTALL\u PREFIX=$HOME/Desktop/clang compilation/outarm-DCMAKE\u BUILD\u TYPE=Release-DLLVM\u DEFAULT\u TARGET\u TRIPLE=arm-linux-androideabi--sysroot=$NDK/platforms/android-21/arch arm/-DLLVM\u ENABLE\u PIC=False-DLLVM\u TARGETS\u arch=arm-DLLVM\u-TO\u BUILD=arm-DLLVM\u TABLEGEN=$HOME/Desktop/clang compilg compilation/osxbuild/bin/llvm tblgen
-DCLANG_TABLEGEN=$HOME/Desktop/clangcompilation/osxbuild/bin/clangtblgen
-DCMAKE_CXX_FLAGS='-I$HOME/android/toolschains/gcc/include/c++/4.9/arm-linux-androideabi-I$HOME/android/toolschains/gcc/include/'$HOME/Desktop/clang compilation/llvm
make-j12
错误消息:
clang36++:警告:编译期间未使用参数:'-bundle'
/Users/paschalis/android/toolschains/gcc/bin//lib/gcc/arm-linux-androideabi/4.8/../../../../../../../arm-linux-androideabi/bin/ld:致命错误:-f/--auxiliary在没有-shared的情况下不能使用
- 下载AOSP
- 从AOSP根目录(
)设置生成命令sourcebuild/envsetup.sh
- cd到平台/外部/llvm()
- 运行
命令以生成mm
- cd至
AOSP根目录/平台/ndk
- 运行
()build/tools/build llvm.py
- 最后,包将位于
文件夹中AOSP/out
envsetup
然后运行make clang
@Paschalis你成功了吗。aosp生成失败。不过还是要谢谢你!不过,我没有投入太多精力,因为我专注于termux包
。我在过去已经构建了aosp的一部分,只是还没有任何外部项目(成功地)完成@Paschalis在AOSPS中完全使用mm
命令而不是make
,因为我已经成功地编译了它,所以我不再尝试使用aosp源代码再次编译它。但是如果你确信mm
有效,我会相信你的话并接受这个答案!在与交叉编译标志和依赖项进行了几天的斗争之后,我终于找到了一个可以工作的编译器。我稍微修改了这个,并构建了clang、gcc和它们的所有依赖项!你能指出构建clang的脚本/补丁吗?