是否有人交叉编译和使用Android的LTP,我尝试使用arm-eabi工具链,arm-linux-none-gnueabi工具链交叉编译LTP,但我无法执行测试用例Android设备。如何交叉编译LTP为android
1
A
回答
1
首先创建独立工具链(使用make-standalone-toolchain.sh脚本)并将其安装到/opt/android-standalone-toolchain.api-${API}
中。
构建本身:
API=24
export TOOLCHAIN_ROOT=/opt/android-standalone-toolchain.api-${API}
export SYSROOT=$TOOLCHAIN_ROOT/sysroot
export CROSS_COMPILE=$TOOLCHAIN_ROOT/bin/arm-linux-androideabi-
export HOST=arm-linux-androideabi
# Non-exhaustive lists of compiler + binutils
# Depending on what you compile, you might need more binutils than that
export CPP=${CROSS_COMPILE}cpp
export AR=${CROSS_COMPILE}ar
export AS=${CROSS_COMPILE}as
export NM=${CROSS_COMPILE}nm
export CC=${CROSS_COMPILE}gcc
export CXX=${CROSS_COMPILE}g++
export LD=${CROSS_COMPILE}ld
export RANLIB=${CROSS_COMPILE}ranlib
export CFLAGS="${CFLAGS} --sysroot=${SYSROOT} -I${SYSROOT}/usr/include \
-I${ANDROID_PREFIX}/include"
export CPPFLAGS="${CFLAGS}"
export LDFLAGS="${LDFLAGS} -L${SYSROOT}/usr/lib -L${ANDROID_PREFIX}/lib"
make autotools
./configure --host=${HOST} --with-sysroot=${SYSROOT}
make -j$(getconf _NPROCESSORS_ONLN) ANDROID=1
make install
adb push /opt/ltp /data/local/tmp
学分:使用可变ANDROID=1
被记录在INSTALL文件在LTP源代码,设置的其它变量是由android_configure.sh启发。
但是,目前构建失败,因为许多测试需要被禁用(仿生学不支持许多必需的功能,请参阅谷歌人制作的list of tests needed to be disabled)。
目前,上游方面正在努力修复为Android构建LTP的问题。来自谷歌的人added LTP into AOSP,但他们将代码返回给LTP上游(请参阅LTP邮件列表中的信息people from google planning to contribute,their instructions about building)。
一些与android相关的修补程序(来自google和其他人):fix the executable shell path,fix temp dir,fix stack_clash test。
目前在AOSP中使用谷歌仓库可能会更容易(AOSP树中的in-tree内置或独立工具链的out-of-tree),但是早晚LTP上游应该从android仓库获得所有android修正。
相关问题
- 1. 交叉编译openvswitch为Android
- 2. 交叉编译freetype为Android
- 3. Android交叉编译
- 4. Android交叉编译ffmpeg
- 5. Android和交叉编译
- 6. 交叉编译C程序为Android
- 7. CMake:FIND_PACKAGE(线程)为Android交叉编译
- 8. 使用ppcrossarm交叉编译为Android?
- 9. 为arm编译交叉编译e2fsprogs
- 10. 交叉编译为Android使用NDK失败,编译器错误
- 11. 如何使用crystax-NDK&autotools为Android交叉编译gperftools?
- 12. Qt交叉编译
- 13. 交叉编译ldd
- 14. Beaglebone交叉编译
- 15. Qt - 交叉编译
- 16. 交叉编译libSDL
- 17. ARM交叉编译
- 18. cmake交叉编译
- 19. qt交叉编译
- 20. 交叉编译器
- 21. Microblaze交叉编译
- 22. QTcreator交叉编译
- 23. 交叉编译stunnel
- 24. 交叉编译QT
- 25. 交叉编译php
- 26. 如何与dahdi交叉编译用于arm的交叉编译的星号?
- 27. android AOSP交叉编译器混淆
- 28. 是aubio交叉编译的iPhone/Android/ARM?
- 29. Android Studio交叉编译静态库。
- 30. 针对Android的交叉编译
什么是'LTP'? –
LTP是Linux测试项目,可用于测试任何模块的功能。例如我们可以使用LTP来测试USB驱动程序的功能。它可用于x86系统,我们需要交叉编译才能在android设备上运行它。 – LKL
@赞歌杰:LTP来源:https://github.com/linux-test-project/ltp – pevik