一. 获取最新源码
可以上官网下载稳定版本,或者使用git获取最新代码,如下:
git clone git://git.videolan.org/vlc.git
后面一系列文章都是根据vlc3.0.6版来进行分析,下面的编译步骤也适用于这个版本
二.安装第三方依赖库
- 自动化工具部署
apt-get install git build-essential pkg-config libtool automake autopoint gettext
- 第三方库
apt-get update
sudo apt-get -y install libvorbis-dev libogg-dev libtheora-dev speex libspeex-dev flac libflac-dev \
x264 libx264-dev mpeg2dec libmpeg2-4-dev faad libfaad-dev faac libfaac-dev \
lame libmp3lame-dev ffmpeg libavdevice-dev libmad0 libmad0-dev \
libebml-dev libdca-dev twolame libtwolame-dev libmpcdec-dev libvorbisidec1 libvorbisidec-dev libass-dev \
libmatroska-dev libdvbpsi-dev libmodplug1 libmodplug-dev libshout3 libshout3-dev \
libdvdnav-dev livemedia-utils liblivemedia-dev libcddb2 libcddb2-dev libcdio-dev libxcb-composite0-dev\
libcdio-utils vcdimager libvcdinfo0 libvcdinfo-dev libgpg-error0 libgpg-error-dev \
gnutls-bin libgnutls28-dev libdap-bin libdap-dev libxml2 libxml2-dev libpng-dev \
libjpeg8 libtiff5 libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libc-bin gettext libfreetype6 libfreetype6-dev \
libfribidi-dev libfribidi0 zlib1g zlib1g-dev libtag1-dev libcaca0 libcaca-dev caca-utils \
libportaudio2 libupnp-dev libexpat1 libexpat1-dev yasm libxcb-xv0 libxcb-xv0-dev \
libx11-xcb1 libx11-xcb-dev libswscale-dev \
liblua5.2-dev libxcb-randr0-dev libxcb-xkb-dev
编译
- 安装完后./bootstrap提示错误
安装:
apt install -y flex bison
2、声明qt环境变量
如果需要使用界面启动的话,需要安装qt,vlc界面使用的qt,安装后需声明qt的环境变量,如下步骤:
export PKG_CONFIG_PATH=/opt/Qt5.14.2/5.14.2/gcc_64/lib/pkgconfig:/usr/lib/pkgconfig/:/usr/local/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/snap/gnome-3-34-1804/36/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH
下面不能换行
export QT_CFLAGS="-I/opt/Qt5.14.2/5.14.2/gcc_64/include -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtWidgets -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtDBus -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtGui -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtOpenGL -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtSvg -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtUiTools -I/opt/Qt5.14.2/5.14.2/gcc_64/include/Qt3Support -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtCore -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtDesigner -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtNetwork -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtSql -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQml -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQmlDebug -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQmlModels -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQmlWorkerScript -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQuick -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQuick3D -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQuick3DAssetImport -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQuick3DRender -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQuick3DRuntimeRender -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQuick3DUtils -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQuickControls2 -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQuickParticles -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQuickShapes -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQuickTemplates2 -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQuickTest -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtQuickWidgets -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtTest -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtX11Extras -I/opt/Qt5.14.2/5.14.2/gcc_64/include/QtXml"
qt动态库路径:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/Qt5.14.2/5.14.2/gcc_64/lib:/usr/lib64/
//此处需要将Bin加入,不然moc找不到,编译qt的ui文件就会有问题
QTDIR=/opt/Qt5.14.2/Tools/QtCreator
export PATH=$QTDIR/bin:$PATH:/opt/Qt5.14.2/5.14.2/gcc_64/bin
3、configure :禁掉某些项
//
./configure --prefix=/usr/lib/vlc --enable-run-as-root --disable-dependency-tracking --enable-debug --disable-a52
4、make
5、验证编译通过后,可以选择开发的ide了,这里选择eclipse-c++,适合MakeFile这种工程
6、搭建eclipse-c++环境
这里不多说,不是难点,大体上分为两部,安装jdk:apt install openjdk-11-jdk。
再下载Eclipse installer后,选择c/c++安装。
7、启动后,导入MakeFile工程
8、会报moc找不到,在ide里,添加qt的环境变量,声明一下qt的moc编译器路径和qt的lib库路径即可
9、至此,vlc便能在ide上运行起来,但是播放了视频后再调试,会出现各种问题,试过ubuntu18,也是一下断点程序变崩溃,
只能直接运行。有大牛解决了的话,麻烦交流下,谢谢!