Android libX265库的交叉编译

基于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()
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值