[Paraview] Linking against static builds of FFMPEG fails since cvs up -D'2009-07-31 16:52:02 CEST'

Sven Buijssen sven.buijssen at tu-dortmund.de
Sun Aug 9 09:24:36 EDT 2009


Hi,

I'm wondering if anyone else noticed problems compiling ParaView from
CVS while setting -DVTK_USE_FFMPEG_ENCODER:BOOL=ON and using static
builds of http://www.vtk.org/files/support/ffmpeg_source.tar.gz since
the commit with ID FWQft1X9tt8TgSXt that occurred between 2009/07/31
16:52:47 CEST and 16:53:52 CEST.

On both a openSuSE 11.1 (32 bit) and a Ubuntu 9.04 (64 bit) machine
linking against static FFMPEG libraries fails with:

> Linking CXX executable ../../../../../bin/QVTKCxxTests
> ../../../../../bin/libvtkIO.so.pv3.7: undefined reference to `avcodec_register_all'
> ../../../../../bin/libvtkIO.so.pv3.7: undefined reference to `avcodec_pix_fmt_to_codec_tag'
> collect2: ld returned 1 exit status
> make[2]: *** [bin/QVTKCxxTests] Error 1
> make[1]: *** [VTK/GUISupport/Qt/Testing/Cxx/CMakeFiles/QVTKCxxTests.dir/all] Error 2

I obviously checked and my libavcodec.a does provide both symbols:

> nm libavcodec.a | egrep "avcodec_pix_fmt_to_codec_tag|avcodec_register_all"
> 00000000 T avcodec_register_all
> 00000000 T avcodec_pix_fmt_to_codec_tag

Linking against shared FFMPEG libraries works. But I prefer to link
ParaView against static FFMPEG libraries because of the outdated FFMPEG
version ParaView requires. Using shared libraries repeatedly raised
problems with other software that requires a recent version of FFMPEG.

Reverting the changes made with commitid FWQft1X9tt8TgSXt one by one
resolves the issue. But being aware of the intention of this commit
that's no solution, either.

I used gcc 4.3.3 and 4.3.4, Qt 4.5.2, cmake 2.6-patch 4, GNU make 3.81
and binutils 2.19.1.

Thanks for feedback.

Sven


More information about the ParaView mailing list