是否有人交叉編譯和使用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