I try to compile a C++ code, using a library I've also compiled manually and installed in /usr/local/lib
The compilation of the software fails at the linking step:
/usr/bin/ld: error: cannot find -lcppdb
it seems that g++ does not search by default in /usr/local/lib
, same for clang++
g++ -print-search-dirs # does not show /usr/local/lib
however the fact is /usr/local/lib
is in my /etc/ld.so.conf
and I did run ldconfig
as root, and actually running ldconfig -p | grep cppdb
shows me
libcppdb_sqlite3.so.0 (libc6) => /usr/local/lib/libcppdb_sqlite3.so.0
libcppdb_sqlite3.so (libc6) => /usr/local/lib/libcppdb_sqlite3.so
libcppdb.so.0 (libc6) => /usr/local/lib/libcppdb.so.0
libcppdb.so (libc6) => /usr/local/lib/libcppdb.so
adding the option -L/usr/local/lib
of course solve the problem, but the goal is to use configuration files
ld
, the linker, does not use external configuration files for that. ldconfig
is for the loader, ld.so
. Create a makefile if you want to set values for the linker somewhere.