我尝试在Ubuntu15.10中编译了很长时间的VLC3,但还是没有运气。我按以下方式配置了FFmpeg:
~/FFMPEG-3.3.3$./configure--cpu=native--enable-pthreads--enable-bzlib--enable-libdc1394--enable-libfreetype--enable-frei0r--enable-gnutls--enable-libmp3lame--enable-libmpmp--enable-libmp3lame--enable-libopencv--enable-libopenjpeg--enable-libopus--enable-libpulse--enable-libschroedinger--
并使用以下参数配置了VLC3:
~/vlc-3.0.0-git$./configure--with-decklink-sdk=i/home/ivan/downloads/blackmagic_decklink_sdk_10.9.5/linux/include--disable-chromecas
编译看起来不错。然后我试了一下:
$sudo make安装
并得到以下错误:
CCLD libavio_plugin.la
/usr/local/lib/libavutil.a(hwcontext_vaapi.o): In function `vaapi_device_free':
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vaapi.c:899: undefined reference to `XCloseDisplay'
/usr/local/lib/libavutil.a(hwcontext_vaapi.o): In function `vaapi_device_create':
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vaapi.c:929: undefined reference to `XOpenDisplay'
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vaapi.c:934: undefined reference to `vaGetDisplay'
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vaapi.c:941: undefined reference to `XDisplayName'
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vaapi.c:931: undefined reference to `XDisplayName'
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vaapi.c:958: undefined reference to `vaGetDisplayDRM'
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vaapi.c:929: undefined reference to `XOpenDisplay'
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vaapi.c:931: undefined reference to `XDisplayName'
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vaapi.c:936: undefined reference to `XDisplayName'
/usr/local/lib/libavutil.a(hwcontext_vdpau.o): In function `vdpau_device_create':
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vdpau.c:431: undefined reference to `XOpenDisplay'
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vdpau.c:437: undefined reference to `XDisplayString'
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vdpau.c:439: undefined reference to `XDefaultScreen'
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vdpau.c:439: undefined reference to `vdp_device_create_x11'
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vdpau.c:433: undefined reference to `XDisplayName'
/usr/local/lib/libavutil.a(hwcontext_vdpau.o): In function `vdpau_device_free':
/home/ivan/ffmpeg-3.3.3/libavutil/hwcontext_vdpau.c:410: undefined reference to `XCloseDisplay'
collect2: error: ld returned 1 exit status
Makefile:12577: recipe for target 'libavio_plugin.la' failed
make[4]: *** [libavio_plugin.la] Error 1
make[4]: Leaving directory '/home/ivan/vlc-3.0.0-git/modules'
Makefile:25280: recipe for target 'install-recursive' failed
make[3]: *** [install-recursive] Error 1
make[3]: Leaving directory '/home/ivan/vlc-3.0.0-git/modules'
Makefile:25679: recipe for target 'install' failed
make[2]: *** [install] Error 2
make[2]: Leaving directory '/home/ivan/vlc-3.0.0-git/modules'
Makefile:1519: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory '/home/ivan/vlc-3.0.0-git'
Makefile:1985: recipe for target 'install' failed
我已经看到了以下与这种情况有关的问题:问题1,问题2,问题3
正如我从这些问题中了解到的,我应该将compile命令中的以下库移到最后:
-LVDPAU-LX11-LVA*
但我仍然不明白将这些库移动到哪里。
请查看pkg-config命令的输出结果:
$PKG-config--libs libavcodec libavformat libswscale libavutil
-l/usr/local/lib-lav格式-lxv-lx11-lxext-lstdc++-lvdpau-lva-lva-x11-lx11-lva-lva-drm-lva-lxcb-lxcb-shm-lxcb-lxcb-xfixes-lxcb-render-lxcb-shape-lxcb-lxcb-lxcb-lxcb-lcdio_paranoia-lcdio_cda-lcdio-ljack-lasound-ldc1394-lssl-lcrypto-lxvidcoreIBopencv_legacy.so-lopencv_legacy/usr/lib/x86_64-linux-gnu/libopencv_ml.so-lopencv_ml/usr/lib/x86_64-linux-gnu/libopencv_objdetect.so-lopencv_objdetect/usr/lib/x86_64-linux-gnu/libopencv_ocl.so-lopencv_photo.so-lopencv_photo/usr/lib/x86_64-linux-gnu/libopencv_stitchpx-lm-lvpx-lm-lvorbisenc-lvorbis-logg-lvo-amrwbenc-ltheoraenc-ltheoradec-logg-lspeex-lschroedinger-1.0-lrtmp-lz-lgmp-lpulse-lopus-lopenjpeg-dopj_staticopencv_stitching.so-lopencv_stitching/usr/lib/x86_64-linux-gnu/libopencv_superres.so-lopencv_superres/usr/lib/x86_64-linux-gnu/libopencv_ts.so-lopencv_ts/usr/lib/x86_64-linux-gnu/libopencv_video.so-lopencv_video.so-lopencv_video/usr/lib/x86_64-linux-gnu/libopenc
和libavutil库的结果:
$PKG-config--libs libavutil
-l/usr/local/lib-lavutil-lm
请同时查看我的VLC Makefile
请你指出这些图书馆应该重新排序的地方好吗?此外,我的pkg-config输出结果与上述问题的结果不同。任何解决这个问题的建议或链接都会很有帮助。
所以我使用Vagrant在Ubuntu16.04 LTS上测试了它,因为15.10默认包存储库不可用
vagrant init bento/ubuntu-16.04
vagrant up && vagrant ssh
在解压缩源之后,我安装了以下所需的包
sudo apt安装-y yasm frei0r-plugins-dev libghc-gnutls-dev libfedk-aac-dev libfreetype6-dev libgsm1-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libopencv-dev libopenjpeg-dev autoconf automake build-enssential libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libvorbis-dev libxcb1-devlibxcb-xv0-dev libxcb-xvmc0-dev
然后使用下面的方法配置ffmpeg
/configure--cpu=native--enable-pthreads--enable-bzlib--enable-libdc1394--enable-libfreetype--enable-frei0r--enable-gnutls--enable-libfreetype--enable-frei0r--enable-gnutls--enable-libmp3lame--enable-libtmp--enable-libopencv--enable-libopencv--enable-libopencv--enable-libopus--enable-libpulse--
使用make-j4&&编译使安装
使用下面的配置VLC
。/configure--with-decklink-sdk=I/vagrant/decklink/blackmagic/linux/include--disable-chromecast--enable-shared--disable-wayland
然后使用make-j4&&构建使安装