[FFmpeg-trac] #6089(avutil:new): libavutil.pc missing some dependencies
FFmpeg
trac at avcodec.org
Wed Jan 18 07:11:16 EET 2017
#6089: libavutil.pc missing some dependencies
-------------------------------------+-------------------------------------
Reporter: Mr-Dave | Type: defect
Status: new | Priority: normal
Component: avutil | Version:
Keywords: pkgconfig | unspecified
avutil | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
Some dependent libraries are missing in the package config
How to reproduce:
Build ffmpeg with the following script
{{{
cd /home/user/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-3.2.2.tar.bz2
tar xjvf ffmpeg-3.2.2.tar.bz2
cd ffmpeg-3.2.2
PATH="/home/user/ffmpeg_32/bin:$PATH"
PKG_CONFIG_PATH="/home/user/ffmpeg_32/lib/pkgconfig" ./configure \
--prefix="/home/user/ffmpeg_32" \
--pkg-config-flags="--static" \
--extra-cflags="-I/home/user/ffmpeg_32/include" \
--extra-ldflags="-L/home/user/ffmpeg_32/lib" \
--bindir="/home/user/ffmpeg_32/bin" \
--enable-gpl \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree
PATH="/home/user/ffmpeg_32/bin:$PATH" make
make install
}}}
This results in the following line in libavutil.pc
{{{
Libs: -L${libdir} -lavutil -lm
}}}
When linking programs that use ffmpeg, libavutil fails with
{{{
/home/user/ffmpeg_32/lib/libavutil.a(hwcontext_vaapi.o): In function
`vaapi_device_free':
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vaapi.c:829:
undefined reference to `XCloseDisplay'
/home/user/ffmpeg_32/lib/libavutil.a(hwcontext_vaapi.o): In function
`vaapi_device_create':
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vaapi.c:859:
undefined reference to `XOpenDisplay'
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vaapi.c:864:
undefined reference to `vaGetDisplay'
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vaapi.c:871:
undefined reference to `XDisplayName'
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vaapi.c:861:
undefined reference to `XDisplayName'
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vaapi.c:885:
undefined reference to `vaGetDisplayDRM'
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vaapi.c:859:
undefined reference to `XOpenDisplay'
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vaapi.c:861:
undefined reference to `XDisplayName'
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vaapi.c:866:
undefined reference to `XDisplayName'
/home/user/ffmpeg_32/lib/libavutil.a(hwcontext_vdpau.o): In function
`vdpau_device_create':
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vdpau.c:432:
undefined reference to `XOpenDisplay'
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vdpau.c:438:
undefined reference to `XDisplayString'
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vdpau.c:440:
undefined reference to `XDefaultScreen'
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vdpau.c:440:
undefined reference to `vdp_device_create_x11'
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vdpau.c:434:
undefined reference to `XDisplayName'
/home/user/ffmpeg_32/lib/libavutil.a(hwcontext_vdpau.o): In function
`vdpau_device_free':
/home/user/ffmpeg_sources/ffmpeg-3.2.2/libavutil/hwcontext_vdpau.c:411:
undefined reference to `XCloseDisplay'
collect2: error: ld returned 1 exit status
}}}
To work around the issue, revise libavutil.pc to have the following line:
{{{
Libs: -L${libdir} -lavutil -lm -lX11 -lvdpau -lva-drm -lva-x11 -lva
}}}
This issue appears to have been introduced in version 3.1
--
Ticket URL: <https://trac.ffmpeg.org/ticket/6089>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list