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

Berk Geveci berk.geveci at kitware.com
Tue Aug 11 09:30:14 EDT 2009


Hi Sven,

This is not the right fix. The problem arose from the fact that the
ffmpeg libraries were listed in the wrong order in the CMake files. It
worked before because ffmpeg libraries were listed multiple times in
the link line. The recent changes fixed this but they also revealed
this bug. I committed a fix that simply reorders the ffmpeg libraries.

Having said that, you should not be linking a shared library against a
static library in the first place. It works right now because libvtkIO
is the only library that pulls ffmpeg in. If another library depended
on it, you would run into potential issues.

Best,
-berk

On Mon, Aug 10, 2009 at 6:48 AM, Sven
Buijssen<sven.buijssen at tu-dortmund.de> wrote:
> Hi,
>
> I found a possible cure. I'm not sure, though, about side effects it may
> cause w.r.t. what has been the intention of the changes made with
> commitid FWQft1X9tt8TgSXt, discussed in vtk-dev thread #Use
> LINK_INTERFACE_LIBRARIES for VTK libs"
> (http://www.vtk.org/pipermail/vtk-developers/2009-July/006180.html)
>
> Given the changes Mathieu Malaterre made in VTK/IO/CMakeLists.txt with
> revision 1.179 (introducing variable KIT_INTERFACE_LIBRARIES) and given that the
> remaining changes in other CMakeLists.txt of this commit mainly are using
> KIT_INTERFACE_LIBRARIES instead of KIT_LIBS I find it reasonable to believe that
> the following patch is required in order to be able to compile ParaView using
> static FFMPEG libraries:
>
> Index: VTK/IO/CMakeLists.txt
> ===================================================================
> RCS file: /cvsroot/ParaView3/ParaView3/VTK/IO/CMakeLists.txt,v
> retrieving revision 1.179
> diff -a -u -r1.179 CMakeLists.txt
> --- VTK/IO/CMakeLists.txt       31 Jul 2009 14:53:02 -0000      1.179
> +++ VTK/IO/CMakeLists.txt       10 Aug 2009 09:28:17 -0000
> @@ -247,6 +248,10 @@
>     ${FFMPEG_avcodec_LIBRARY}
>     ${FFMPEG_avformat_LIBRARY}
>     ${FFMPEG_avutil_LIBRARY})
> + SET(KIT_INTERFACE_LIBRARIES ${KIT_INTERFACE_LIBRARIES}
> +    ${FFMPEG_avcodec_LIBRARY}
> +    ${FFMPEG_avformat_LIBRARY}
> +    ${FFMPEG_avutil_LIBRARY})
>  ENDIF (VTK_USE_FFMPEG_ENCODER)
>
>  #-----------------------------------------------------------------------------
>
> Applying this patch, ParaView compiles smoothly. Whether one uses static
> or shared FFMPEG libraries.
>
> Best regards,
> Sven
>
>> 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
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
>


More information about the ParaView mailing list