[x264-devel] Failing to load shared library libffms2.so.0
Markus Doits
markus.doits at googlemail.com
Wed Jan 27 20:24:52 CET 2010
On 01/26/2010 07:24 PM, Sean McGovern wrote:
> Is it possible the copy in /usr/local/lib is corrupt or the wrong architecture (i386 vs. x86_64)?
Well, I think it's ok (I'm on ubuntu x86_64), is there any way to test
it for me?
/usr/local/lib$ file libffms2.so.0.0.0
libffms2.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1
(SYSV), dynamically linked, stripped
Now I see it's a linker-problem, because strace shows x264 not even
searching for ffms2 in /usr/local/lib:
$ strace `which x264` 2>&1 | grep ffms2
open("/lib/tls/x86_64/libffms2.so.0", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/lib/tls/libffms2.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/lib/x86_64/libffms2.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/lib/libffms2.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/tls/x86_64/libffms2.so.0", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/lib/tls/libffms2.so.0", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/lib/x86_64/libffms2.so.0", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/lib/libffms2.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/lib/x86_64-linux-gnu/tls/x86_64/libffms2.so.0", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/tls/libffms2.so.0", O_RDONLY) = -1 ENOENT
(No such file or directory)
open("/lib/x86_64-linux-gnu/x86_64/libffms2.so.0", O_RDONLY) = -1 ENOENT
(No such file or directory)
open("/lib/x86_64-linux-gnu/libffms2.so.0", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/lib/x86_64-linux-gnu/tls/x86_64/libffms2.so.0", O_RDONLY) =
-1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/tls/libffms2.so.0", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/x86_64/libffms2.so.0", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/libffms2.so.0", O_RDONLY) = -1 ENOENT
(No such file or directory)
writev(2, [{"/usr/local/bin/x264", 19}, {": ", 2}, {"error while loading
shared libra"..., 36}, {": ", 2}, {"libffms2.so.0", 13}, {": ", 2},
{"cannot open shared object file", 30}, {": ", 2}, {"No such file or
directory", 25}, {"\n", 1}], 10/usr/local/bin/x264: error while loading
shared libraries: libffms2.so.0: cannot open shared object file: No such
file or directory
I never had such problems with local libs before, x264 is the first
thing going crazy. I'll ask on ubuntu-forums about the linker, maybe my
system is the error, not x264...
> -----Original Message-----
> From: Markus Doits <markus.doits at googlemail.com>
> Date: Tue, 26 Jan 2010 18:34:23
> To: Mailing list for x264 developers<x264-devel at videolan.org>
> Subject: [x264-devel] Failing to load shared library libffms2.so.0
>
> Hello,
>
> I'm having problems with x264-linking (again). I just updated
> ffmpegsource and noticed they changed their libname to lowercase.
> Allright, so i patched x264 to use it (since it did not recognize it yet):
>
> diff --git a/configure b/configure
> index 9f04a18..9cd1fe8 100755
> --- a/configure
> +++ b/configure
> @@ -444,14 +444,14 @@ fi
> if [ "$ffms_input" = "auto" ] ; then
> ffms_input="no"
> if [ "$lavf_input" = "yes" ] ; then
> - if cc_check ffms.h -lFFMS2 "FFMS_DestroyVideoSource(0);" ; then
> + if cc_check ffms.h -lffms2 "FFMS_DestroyVideoSource(0);" ; then
> ffms_input="yes"
> echo "#define FFMS_INPUT" >> config.h
> - LDFLAGSCLI="$LDFLAGSCLI -lFFMS2"
> - elif cc_check ffms.h "-lFFMS2 $LAVF_LDFLAGS -lstdc++"
> "FFMS_DestroyVideoSource(0);" ; then
> + LDFLAGSCLI="$LDFLAGSCLI -lffms2"
> + elif cc_check ffms.h "-lffms2 $LAVF_LDFLAGS -lstdc++"
> "FFMS_DestroyVideoSource(0);" ; then
> ffms_input="yes"
> echo "#define FFMS_INPUT" >> config.h
> - LDFLAGSCLI="-lFFMS2 $LDFLAGSCLI -lstdc++"
> + LDFLAGSCLI="-lffms2 $LDFLAGSCLI -lstdc++"
> fi
> fi
> fi
>
>
>
> Configuring works well, linking with "-lffms2" too.
>
> gcc -o x264 x264.o [...] -lm -lpthread -Wl,-Bsymbolic -s -L. -lavformat
> -lswscale -lpostproc -lavcodec -lavutil -lm -lz -lbz2 -lpthread -lffms2
> -lgpac_static
>
>
>
> but...:
>
>
>
> $ x264
> x264: error while loading shared libraries: libffms2.so.0: cannot open
> shared object file: No such file or directory
>
> $ ldd ./x264
> linux-vdso.so.1 => (0x00007fffb43ff000)
> libm.so.6 => /lib/libm.so.6 (0x00007ff04ae30000)
> libpthread.so.0 => /lib/libpthread.so.0 (0x00007ff04ac14000)
> libavformat.so.52 => /usr/local/lib/libavformat.so.52
> (0x00007ff04a958000)
> libswscale.so.0 => /usr/local/lib/libswscale.so.0
> (0x00007ff04a726000)
> libpostproc.so.51 => /usr/local/lib/libpostproc.so.51
> (0x00007ff04a518000)
> libavcodec.so.52 => /usr/local/lib/libavcodec.so.52
> (0x00007ff049934000)
> libavutil.so.50 => /usr/local/lib/libavutil.so.50
> (0x00007ff049723000)
> libz.so.1 => /lib/libz.so.1 (0x00007ff04950c000)
> libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00007ff0492fb000)
> libffms2.so.0 => not found
> libc.so.6 => /lib/libc.so.6 (0x00007ff048f8c000)
> /lib64/ld-linux-x86-64.so.2 (0x00007ff04b0b4000)
> libfaac.so.0 => /usr/lib/libfaac.so.0 (0x00007ff048d7a000)
> libfaad.so.0 => /usr/lib/libfaad.so.0 (0x00007ff048b3a000)
> libgsm.so.1 => /usr/lib/libgsm.so.1 (0x00007ff04892c000)
> libmp3lame.so.0 => /usr/lib/libmp3lame.so.0 (0x00007ff0486b4000)
> libopenjpeg.so.2 => /usr/lib/libopenjpeg.so.2 (0x00007ff048494000)
> libschroedinger-1.0.so.0 => /usr/lib/libschroedinger-1.0.so.0
> (0x00007ff048215000)
> libspeex.so.1 => /usr/lib/libspeex.so.1 (0x00007ff047ffb000)
> libtheoraenc.so.1 => /usr/lib/libtheoraenc.so.1 (0x00007ff047dc1000)
> libtheoradec.so.1 => /usr/lib/libtheoradec.so.1 (0x00007ff047ba7000)
> libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007ff0477cd000)
> libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007ff0475a0000)
> libxvidcore.so.4 => /usr/lib/libxvidcore.so.4 (0x00007ff0472ae000)
> liboil-0.3.so.0 => /usr/lib/liboil-0.3.so.0 (0x00007ff04701e000)
> libogg.so.0 => /usr/lib/libogg.so.0 (0x00007ff046e18000)
> librt.so.1 => /lib/librt.so.1 (0x00007ff046c10000)
>
>
> $ ls -lh /usr/local/lib/libffms2.so.0*
> lrwxrwxrwx 1 root root 17 2010-01-26 18:05
> /usr/local/lib/libffms2.so.0 -> libffms2.so.0.0.0
> -rwxr-xr-x 1 root root 213K 2010-01-26 18:05
> /usr/local/lib/libffms2.so.0.0.0
>
>
> What am I missing? Note I did not try to compile x264 with the patches
> starting with 6662db34 and old ffmpegsource, so might be a problem with
> these changes... (but had it running with old ffmpegsource and before
> 6662db34)
>
> Regards
> Markus
> _______________________________________________
> x264-devel mailing list
> x264-devel at videolan.org
> http://mailman.videolan.org/listinfo/x264-devel
> _______________________________________________
> x264-devel mailing list
> x264-devel at videolan.org
> http://mailman.videolan.org/listinfo/x264-devel
More information about the x264-devel
mailing list