[Libav-user] segmentation fault on avcodec_decode_video2( ) call

Jason Blum jason.j.blum at gmail.com
Wed Mar 12 03:48:17 CET 2014


> Any ideas what I'm missing?

Running make distclean and then recompiling with --enable-shared
worked. I now have .so libraries, and I can link those without any
issue. I'm still in the dark about why I can't link to static .a
libraries, but I'll look into that offline.

One last compiling error remains:
/tmp/ccfDAPSV.o:(.eh_frame+0x6b): undefined reference to `__gxx_personality_v0'

In response to that I included the -lstdc++ flag:
gcc main.cpp -o main -g -D__STDC_CONSTANT_MACROS -I/usr/local/include
-L/usr/local/lib -lavcodec -lavformat -lswscale -lstdc++

This makes that error go away. Now I get another type of error entirely.
./main: error while loading shared libraries: libavcodec.so.55: cannot
open shared object file: No such file or directory

Forgot to use ldconfig after make install. Running ldconfig fixed that
issue. (all of this is probably obvious to the more experienced, but
I'm writing it out here for the possible benefit of others beginners
seeking help like me)

If I compile my code using g++ instead of gcc, the result has stack
smashing errors. But if I use gcc as written above, the code seems to
execute fine and no segmentation faults occur, though valgrind reports
significant memory loss. I'll need to dig into why, unless someone
knows off the top of their head.

Making progress! Thanks for everyone's replies and help!

-Jason


More information about the Libav-user mailing list