基于x265_2.5(2.5版本),Android-170.提取Android ndk r10交叉编译工具链
运行如下命令:
/home/xxxx/project/test/ndk/android-ndk-r9d/build/tools/make-standalone-toolchain.sh --platform=android-17 --install-dir=/home/xxxx/project/test/ndk/android-ndk-r9d/tmp/android-17-toolchain
make-standalone-toolchain.sh --platform=android-18 --install-dir=/home/yuhao/android-18-toolchain
1.交叉编译
下载libx265源码
下载地址:https://bitbucket.org/multicoreware/x265/downloads/
1.修改文件libx265/x265_2.5/build/arm-linux/crosscompile.cmake
源文件
5 set(CROSS_COMPILE_ARM 1)
6 set(CMAKE_SYSTEM_NAME Linux)
7 set(CMAKE_SYSTEM_PROCESSOR armv6l)
8
9 # specify the cross compiler
10 set(CMAKE_C_COMPILER arm-linux-androideabi-gcc)
11 set(CMAKE_CXX_COMPILER arm-linux-androideabi-g++)
12
13 # specify the target environment
14 SET(CMAKE_FIND_ROOT_PATH /home/yuhao/android-16-toolchain)
15
修改为
5 set(CROSS_COMPILE_ARM 1)
6 set(CMAKE_SYSTEM_NAME Linux)
7 set(CMAKE_SYSTEM_PROCESSOR armv6l)
8
9 # specify the cross compiler
10 set(CMAKE_C_COMPILER arm-linux-androideabi-gcc)
11 set(CMAKE_CXX_COMPILER arm-linux-androideabi-g++)
12
13 # specify the target environment
14 SET(CMAKE_FIND_ROOT_PATH /home/yuhao/android-18-toolchain)
15
16 set(CMAKE_SYSROOT /home/yuhao/android-18-toolchain/sysroot)
1.2修改libx265/x265_2.5/source/CMakeLists.txt
因为android的ndk虽然有pthread.h,但是没有libpthread.a,集成到libc.a里了所以去掉-lpthread
619 if(X265_LATEST_TAG)
620 # convert lists of link libraries into -lstdc++ -lm etc..
621 fore::ach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS})
622 if(IS_ABSOLUTE ${LIB} AND EXISTS ${LIB})
623 list(APPEND PLIBLIST "${LIB}")
624 else()
625 list(APPEND PLIBLIST "-l${LIB}")
626 endif()
627 endforeach()
628 if(PLIBLIST)
629 # blacklist of libraries that should not be in Libs.private
630 list(REMOVE_ITEM PLIBLIST "-lc" "-lpthread") //修改点
631 string(REPLACE ";" " " PRIVATE_LIBS "${PLIBLIST}")
632 else()
633 set(PRIVATE_LIBS "")
634 endif(PLIBLIST)
修改为
619 if(X265_LATEST_TAG)
620 # convert lists of link libraries into -lstdc++ -lm etc..
621 foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS})
622 if(IS_ABSOLUTE ${LIB} AND EXISTS ${LIB})
623 list(APPEND PLIBLIST "${LIB}")
624 else()
625 list(APPEND PLIBLIST "-l${LIB}")
626 endif()