I have an application that uses ODBC to access databases. At one stage I wanted to test some video codec software (don't remember the details now), so I simply inserted code to test it right at the beginning of my ODBC database access code. I had to link to the codec's libavformat.so, which I defined via Project->Build Options->LinkerSettings. I removed the codec testcode from source and the linker library settings after testing.
I then continued working on the ODBC access code, but everytime I linked I got the warning: /usr/bin/ld: warning libavcode.so.52 needed by /usr/lib/libavformat.so.52 may conflict with libavcodec.so.51. I thought it a bit strange, but ignored it because it seemed quite harmless.
Recently I have been having problems in connecting to Oracle Express via ODBC. The Oracle driver just stops in the middle of the connect call without issuing an error message. I am using Linux strace to try to find out where things might be going wrong. I have discovered lots of attempts to find codec libraries in the trace, but I can see no reason why an Oracle ODBC driver (= a software layer between an application program and the native Oracle code that implements the SQL database) would need video, audio codecs and speech compressors.
Here are some open calls in the strace log:
open("/lib/tls/i686/cmov/libavcodec.so.51", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/libavcodec.so.51", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/libavcodec.so.51", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libavcodec.so.51", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libasound.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/libasound.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libavutil.so.49", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/libavutil.so.49", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/i686/cmov/libavutil.so.49", O_RDONLY) = 3
and similar open calls to load libgsm speech compressor, libvorbis audio codecs, libtheora video compression codecs and a few more.
Why are the codec libraries being loaded? Is it because I briefly hijacked the project to checkout the avformat video codec?
I don't think this should be happening, but I don't know enough to figure out what to do next.
Hints would be most welcome.