头图

一、参考资料

Ubuntu系统下交叉编译x264-CSDN博客

二、交叉编译x264

1. 下载源码

下载x264https://www.videolan.org/developers/x264.html

git clone https://code.videolan.org/videolan/x264.git
cd x264
mkdir x264build

2. 设置环境变量

设置交叉编译工具链的环境变量:

export PATH=/home/yoyo/360Downloads/toolchains/arm-linux-gnueabihf/bin:$PATH

3. 生成configure配置

./configure \
--prefix="/home/yoyo/360Downloads/x264/x264build" \
--sysroot="/home/yoyo/360Downloads/toolchains/arm-linux-gnueabihf/arm-linux-gnueabihf/libc" \
--host=arm-linux-gnueabihf \
--cross-prefix=arm-linux-gnueabihf- \
--enable-static \
--enable-shared \
--extra-cflags="-I/home/yoyo/360Downloads/nasm-2.16.03/arm32_install/include" \
--extra-ldflags="-L/home/yoyo/360Downloads/nasm-2.16.03/arm32_install/lib" 

参数解释

  • --prefix:安装路径;
  • --enable-static:生成静态库;
  • --enable-shared:生成动态库;
  • --extra-cflags:引入nasm库的头文件;
  • --extra-ldflags:引入nasm的lib库。

输出示例:

yoyo@yoyo:~/360Downloads/x264$ ./configure \
> --prefix="/home/yoyo/360Downloads/x264/x264build" \
> --sysroot="/home/yoyo/360Downloads/toolchains/arm-linux-gnueabihf/arm-linux-gnueabihf/libc" \
> --host=arm-linux-gnueabihf \
> --cross-prefix=arm-linux-gnueabihf- \
> --enable-static \
> --enable-shared \
> --extra-cflags="-I/home/yoyo/360Downloads/nasm-2.16.03/arm32_install/include" \
> --extra-ldflags="-L/home/yoyo/360Downloads/nasm-2.16.03/arm32_install/lib" 
platform:       ARM
byte order:     little-endian
system:         LINUX
cli:            yes
libx264:        internal
shared:         yes
static:         yes
bashcompletion: no
asm:            yes
interlaced:     yes
avs:            yes
lavf:           no
ffms:           no
mp4:            no
gpl:            yes
thread:         posix
opencl:         yes
filters:        crop select_every
lto:            no
debug:          no
gprof:          no
strip:          no
PIC:            yes
bit depth:      all
chroma format:  all

You can run 'make' or 'make fprofiled' now.

4. 编译安装

# 编译
make -j8

# 安装
make install

make install 安装:

yoyo@yoyo:~/360Downloads/x264$ make install
install -d /home/yoyo/360Downloads/x264/x264build/bin
install x264 /home/yoyo/360Downloads/x264/x264build/bin
install -d /home/yoyo/360Downloads/x264/x264build/include
install -d /home/yoyo/360Downloads/x264/x264build/lib/pkgconfig
install -m 644 ./x264.h x264_config.h /home/yoyo/360Downloads/x264/x264build/include
install -m 644 x264.pc /home/yoyo/360Downloads/x264/x264build/lib/pkgconfig
install -d /home/yoyo/360Downloads/x264/x264build/lib
ln -f -s libx264.so.164 /home/yoyo/360Downloads/x264/x264build/lib/libx264.so
install -m 755 libx264.so.164 /home/yoyo/360Downloads/x264/x264build/lib
install -d /home/yoyo/360Downloads/x264/x264build/lib
install -m 644 libx264.a /home/yoyo/360Downloads/x264/x264build/lib
arm-linux-gnueabihf-gcc-ranlib /home/yoyo/360Downloads/x264/x264build/lib/libx264.a

如果执行 make install 仅拷贝了 bin 目录,则需要手动将lib库和include头文件拷贝到安装目录。

cp x264.h x264_config.h ../x264build/include/
cp libx264.a ../x264build/lib/
cp x264.pc ../x264build/lib/pkgconfig/

5. 移植到开发板

将编译好的文件,拷贝到开发板。

# 拷贝 include
cp -r ./arm32_install/include/* /PATH/TO/arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include

# 拷贝lib
cp -r ./arm32_install/lib/* /PATH/TO/arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib

技术交流群


花花少年
1 声望0 粉丝

本账号旨在记录和分享知识,不用于商业用途!