Ldd not show linked libs (--no-as-needed)
Problem: gcc build links but shared library does not appear with ldd
Most Linux distributions (I assume you are using Linux based on the output of ldd) seem to configure gcc as to pass –as-needed to ld by default (e.g., see here for Debian). This means the final library/executable will only depend on a library (i.e., have a DT_NEEDED tag for that library) if some symbol of that library is actually used by the library/executable.
$ gcc -Wl,--no-as-needed ...