ubuntu下简易安装(默认最新版本,其它版本及移植往下看):
sudo apt-get install ffmpeg
ffmpeg源码安装及移植需要提前安装x264。
1) 下载;
2) 解压;
3) 进入源码根目录,输入以下命令:
./configure --prefix=/usr/local/x264 --enable-shared --enable-pic --enable-static --disable-asm
make
make install
安装之前请确保之前安装过的X264及ffmpeg卸载完毕;
1) 下载;
2) 解压;
3) 进入源码根目录,输入以下命令:
./configure --enable-shared --prefix=/home/mint/Downloads/ffmpeg/_x264_install/ --host=arm-linux-gnueabihf --disable-asm
# 注:--prefix 为路径选择,这里需要记下来,选择自己的路径 --host 交叉编译器,根据自己的交叉编译器选择 --disable-asm禁止汇编,如果安装汇编编译器可以不配置
4)修改配置文件config.mak,主要做以下修改:
SYS_ARCH=ARM
SYS=LINUX
CC= arm-linux-gnueabihf-gcc
LD=arm-linux-gnueabihf-gcc -o
AR= arm-linux-gnueabihf-ar rc
RANLIB= arm-linux-gnueabihf-ranlib
```
5) 安装:
make
make install
下载
解压
进入源码根目录,输入一下配置命令:
./configure --enable-shared --disable-yasm
make
make install
下载
解压
进入源码根目录,输入一下配置命令:
./configure --cross-prefix=arm-linux-gnueabihf- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc --arch=arm --prefix=/home/mint/Downloads/ffmpeg/_ffmpeg_install --enable-shared --disable-static --enable-gpl --enable-nonfree --disable-ffplay --enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-x86asm --disable-stripping --enable-libx264 --extra-cflags=-I/home/mint/Downloads/ffmpeg/_x264_install/include --extra-ldflags=-L/home/mint/Downloads/ffmpeg/_x264_install/lib --extra-libs=-ldl
# 注:--cross-prefix:交叉编译器选择 --target-os: 系统环境 --cc:C库编译器,这里用的gcc交叉编译器 --arch:芯片架构 --prefix:安装路径,记着 --extra-cflags:x264头文件路径,和arm安装方式的x264路径一致 --extra-ldflags:x264库文件路径,和arm安装方式的x264路径一致
# 如果出现错误:relocation R_ARM_THM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC ,在./configure中添加--extra-cflags=-fPIC
make
make install
移植库文件即可,移植文件在刚刚x264和ffmpeg安装路径的lib文件夹下,copy所有的.so文件,到文件系统的/lib下(.so文件时Linux系统的dll文件)。
另外,移植ffmpeg安装路径下的bin文件夹的ffmpeg文件到文件系统的/bin文件夹。
OpenCV移植需要大量的依赖库:libz,libjpeg,libpng,yasm,libx264,libxvid,ffmpeg等等,这些放在源码根目录的3rdparty文件夹中,一个个编译不太现实,所以借助第三方工具cmake-gui;
这个工具版本很随意,不需要最新的,直接安装就行,ubuntu下安装指令:
sudo apt install cmake cmake-qt-gui cmake-curses-gui
创建build 、 install 文件夹,作为存放编译文件和安装目录,这里建议这么做,如果配置错可以直接删build,重新配置;
源码目录下 3rdparty/protobuf/src/google/protobuf/stubs/common.cc 文件在include前添加定义:#define HAVE_PTHREAD
之后进行编译安装:
make -j8
make install
boost库移植
下载:https://www.boost.org/
交叉编译安装:
./bootstrap.sh --prefix=/home/mint/Downloads/boost/
./b2
./b2 install
# 注:当结果最后出现failed没关系,只要需要的编译安装没问题就可以。
各种安装atomic,chrono,container,context,contract,coroutine,date_time,exception,fiber,filesystem,graph,graph_parallel, headers,iostreams,json,locale,log,math,mpi,nowide,program_options,python,random,regex,serialization,stacktrace,system,test,thread,timer,type_erasure,wave
jsoncpp库移植
下载
lusb移植
下载
libxml2库移植
下载:
老版本 | 新版本
# version:2.7.2
./configure CROSS_COMPILE=arm-linux-gnueabihf- --host=arm-linux-gnueabihf --prefix=/home/mint/libxml2.4.30 -with-python=no
# version 2.9.12
./configure --prefix=/home/ubuntu/libxml2-2.9.12 --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++
glibc库移植
下载 | 教程
udev
下载 | 中文手册
eudev
下载