Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to find out what tries to load libmysqlclient_r.so library

I am using clang-9 with mysql-connector-c++8.

After mysql-connector-c++ upgrade from 1.1.12 to 8.x and running function in my app: get_driver_instance() an exception is being thrown:

"Couldn't load library libmysqlclient_r.so: libmysqlclient_r.so: cannot open shared object file"

What I've tried so far:

  • ldd on my newly compiled binary, but my newly compiled binary does not link against libmysqlclient_r.so.
  • strace -f my binary, but no info about loading this library
  • removed /etc/ld.so.cache and rebuilt it with ldconfig, than recompiled my software
  • updatedb && locate \*\.so | xargs ldd and the same for \*\.so\.\*, but no file is showing it is linked with libmysqlclient_r.so

There are no errors during compilation. I've got out of ideas what might be wrong. What might I do to diagnose it further?

like image 460
DevilaN Avatar asked Nov 18 '25 05:11

DevilaN


1 Answers

Runtime dlopen calls will not produce any output in ldd, but you can convince ld.so to print when a library is loaded by whom by setting the environment variable LD_DEBUG=files.

like image 164
Botje Avatar answered Nov 20 '25 21:11

Botje



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!