碰到过的一个具体问题:
- 源码安装vlc-3.0.x版本,需要注意的是,不要安装ffmpeg-5及以上的版本,即只支持ffmpeg-4的版本,因此,要安装vlc-3.0版本,一个重要的依赖时就会ffmpeg-4。
- 报错没有revision.txt,这个报错其实很没有价值,就是因为缺少一个revision.txt文件,这个文件里记录的是vlc版本信息,如此而已,之所以会缺失,是因为这个它是在git拉取vlc代码的时候,由git生成的,而我当时是直接zip压缩包下载了,所以就缺少这个文件了,解决方法就是自己手动创建一个src/revision.txt,里面随便写点什么,或者git拉取(但是vlc去git拉取其实很不靠谱,vlc没压缩的话会很大,体积也大)。
- 已经安装的库文件被报错找不着。因为是源码编译安装,默认的安装目录是在
/usr/local/lib
或者/usr/local/lib64
等目录,务必记得将这些目录写入环境变量里,比如写入~/.bashrc
中,比如export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/
,这么个写法。务必写入,不然经常会出现明明代码已经编译安装成功了,但是依赖这个包的库编译的时候报错找不到,当然也得记得sudo ldconfig
- 报错要求qt6以上版本。这个报错可以直接强制要求使用qt5。
编译VLC的命令
bash
./bootstrap # 生成 configure 脚本
./configure \
--enable-x11 \
--enable-xvideo \
--enable-alsa \
--enable-avcodec \
--enable-qt \
--disable-a52 \
当然,还有配置项,自己考虑要不要增加,但是如果运行的时候,报错说缺少什么库,如果你懒得处理依赖问题,可以考虑把那个库相关的功能disable掉,省点事。
安装ffmpeg-4提醒
- 关于安装ffmpeg-4,其实过程比较常规,但是最重要的一点是,要在ffmpeg使用到
-f x11grab
选项的话,比如要使用录屏功能,如果报错x11grab not found
,一定要在编译ffmpeg-4的功能时候,配置--enable-libxcb
,FFmpeg 新版本(4.1+)已经废弃了--enable-x11grab
选项。 - 报错需要
msa.h
头文件,这个是针对MIPS架构的一个需求,就是在configue的加入--disable-asm
选项即可。
编译ffmpeg的命令:
bash
./configure \
--enable-libxcb \ # 推荐:XCB 抓屏(现代 X11 接口)
--enable-gpl \
--enable-libx264 \
--disable-asm
提醒
在源码编译过程中,再强调养成几个习惯。
- 记得把pkg-config写入环境变量,因为默认的源码编译目录都在
/usr/local
下,默认不在环境变量中,这个习惯能减少很多问题。 - 每安装一个库,使用
sudo ldconfig
来更新。 - 惯用
./configue --help
命令,查看配置项的正确写法。 - 在
./configue
时候,要大胆放弃有些选项,该disable的就disable,有些依赖不解决也不妨碍。
最后,放上所有我下载使用过的源代码软件包,里面很多可能用不上,根据需求编译安装即可。VLC及FFMPEG依赖包