ubuntu 20 vlc源码编译

一. 获取最新源码

可以上官网下载稳定版本,或者使用git获取最新代码,如下:
git clone git://git.videolan.org/vlc.git

后面一系列文章都是根据vlc3.0.6版来进行分析,下面的编译步骤也适用于这个版本

二.安装第三方依赖库

  1. 自动化工具部署
apt-get install git build-essential pkg-config libtool automake autopoint gettext
  1. 第三方库
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

编译

  1. 安装完后./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,也是一下断点程序变崩溃,
只能直接运行。有大牛解决了的话,麻烦交流下,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值