X265交叉编译

X265编译


x264基本被淘汰了,x265可向下兼容x264,使用脚本自动编译。

#!/bin/sh

#设置交叉编译的目标系统
CROSS_SYSTEM_NAME=Linux

#设置平台处理器
CROSS_SYSTEM_PROCESSOR=armv8

#设置交叉编译器前缀
CROSS_TOOLCHAIN_PREFIX=aarch64-linux-gnu

#设置X265安装路径
X265_INSTALL_PATH=/opt/x265

#编译的版本
X265_VER=3.2.1

#自动组合包名,无需修改
PACKAGE_NAME=x265_${X265_VER}

#自动组合压缩包名,无需修改
COMPRESS_PACKAGE=${PACKAGE_NAME}.tar.gz

#下载地址自动组合,无需修改
DOWNLOAD_LINK=http://download.videolan.org/videolan/x265/${COMPRESS_PACKAGE}

#编译器路径,无需修改
CROSS_FULL_PATH=`whereis ${
     
     CROSS_TOOLCHAIN_PREFIX}-gcc | awk -F: '{ print $2 }' | awk '{print $1}'`

CROSS_PATH=`dirname ${
     
     CROSS_FULL_PATH}`

#下载源码包
do_download_x265_src () {
    
    
 if [ ! -f "${COMPRESS_PACKAGE}" ];then
    if [ ! -d "${PACKAGE_NAME}" ];then
    	wget -c ${DOWNLOAD_LINK}
    fi
 fi
}

#解压源码包
do_tar_package () {
    
    
#if exist file then
 if [ ! -d "${PACKAGE_NAME}" ];then
		if [ -f "${COMPRESS_PACKAGE}" ];then
  		tar -xvf ${COMPRESS_PACKAGE}
 		else
			echo "\033[1;33m no such file or directory ...\033[0m"
			exit 65
		fi  
 fi
}

#交叉编译修改
make_pre()
{
    
    
	cd ${PACKAGE_NAME}/build
	mkdir -p ${CROSS_SYSTEM_PROCESSOR} 
	cd ${CROSS_SYSTEM_PROCESSOR}

	touch crosscompile.cmake
	#echo "set(CROSS_COMPILE_ARM 1)" > crosscompile.cmake
	echo "set(CMAKE_SYSTEM_NAME ${CROSS_SYSTEM_NAME})" > crosscompile.cmake
	echo "set(CMAKE_SYSTEM_PROCESSOR ${CROSS_SYSTEM_PROCESSOR})" >> crosscompile.cmake
	echo "" >> crosscompile.cmake
	echo "# specify the cross compiler" >> crosscompile.cmake
	echo "set(CMAKE_C_COMPILER ${CROSS_PATH}/${CROSS_TOOLCHAIN_PREFIX}-gcc)" >> crosscompile.cmake
	echo "set(CMAKE_CXX_COMPILER ${CROSS_PATH}/${CROSS_TOOLCHAIN_PREFIX}-g++)" >> crosscompile.cmake
	echo "set(CMAKE_SHARED_LINKER_FLAGS \"-ldl \${CMAKE_SHARED_LINKER_FLAGS}\")" >> crosscompile.cmake
	echo "" >> crosscompile.cmake
	echo "# specify the target environment" >> crosscompile.cmake
	echo "SET(CMAKE_FIND_ROOT_PATH  ${CROSS_PATH})" >> crosscompile.cmake
	echo "" >> crosscompile.cmake
	echo "# specify the target install path" >> crosscompile.cmake
	echo "set( CMAKE_INSTALL_PREFIX \"${X265_INSTALL_PATH}\")" >> crosscompile.cmake
}

#编译并安装
make_installx265()
{
    
    
	cmake -DCMAKE_TOOLCHAIN_FILE=crosscompile.cmake -G "Unix Makefiles" -DCMAKE_C_FLAGS="-fPIC ${CMAKE_C_FLAGS}" -DCMAKE_CXX_FLAGS="-fPIC ${CMAKE_CXX_FLAGS}" -DCMAKE_SHARED_LINKER_FLAGS="-ldl ${CMAKE_SHARED_LINKER_FLAGS}"  ../../source && make -j2
	sudo make install
}

do_download_x265_src
do_tar_package
make_pre
make_installx265
exit $?

猜你喜欢

转载自blog.csdn.net/weixin_42892101/article/details/108311684