Hi, On Wed, Jul 20, 2022 at 7:28 PM Greg Wooledge <g...@wooledge.org> wrote: > > On Wed, Jul 20, 2022 at 07:05:28PM -0500, Igor Korot wrote: > > Please compare: > > > > In Gentoo: > > > > [code] > > igor@IgorReinCloud ~ $ odbc_config --libs > > -L/usr/lib64 -lodbc > > igor@IgorReinCloud ~ $ > > [/code] > > > > In Debian: > > > > [code] > > igor@debian: ~ $ pkg-config --libs odbc > > -lodbc > > [/code] > > FINALLY! SOME ACTUAL DETAILS WE CAN WORK WITH! > > > Not good enough. ;-) > > Why not? > > According to packages.debian.org, the libodbc.so file is in: > > File Packages > /usr/lib/aarch64-linux-gnu/libodbc.so unixodbc-dev [arm64] > /usr/lib/arm-linux-gnueabi/libodbc.so unixodbc-dev [armel] > /usr/lib/arm-linux-gnueabihf/libodbc.so unixodbc-dev [armhf] > /usr/lib/i386-linux-gnu/libodbc.so unixodbc-dev [i386] > /usr/lib/mips-linux-gnu/libodbc.so unixodbc-dev [mips] > /usr/lib/mips64el-linux-gnuabi64/libodbc.so unixodbc-dev [mips64el] > /usr/lib/mipsel-linux-gnu/libodbc.so unixodbc-dev [mipsel] > /usr/lib/powerpc64le-linux-gnu/libodbc.so unixodbc-dev [ppc64el] > /usr/lib/s390x-linux-gnu/libodbc.so unixodbc-dev [s390x] > /usr/lib/x86_64-linux-gnu/libodbc.so unixodbc-dev [amd64] > > Assuming you're on amd64, the /usr/lib/x86_64-linux-gnu/ directory is > already in the linker's search path, right? So you don't *need* > an extra -L option. > > unicorn:~$ gcc -print-search-dirs > install: /usr/lib/gcc/x86_64-linux-gnu/10/ > programs: > =/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/bin/ > libraries: > =/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../lib/:/lib/x86_64-linux-gnu/10/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/10/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../:/lib/:/usr/lib/ > > It's in there. > > > When someone tries to build something on Debian and then > > test it it will fail because ldd will not be able to find the library. > > Can you show us the linker command that you ran, and its error message?
This is the command generated on Gentoo: [code] /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I/home/igor/dbhandler/libodbc -I.. -I../../dbinterface -DUNICODE -DUNIXODBC -I`odbc_config --cflags` -g -O0 -MT libodbc_lib_la-database_odbc.lo -MD -MP -MF .deps/libodbc_lib_la-database_odbc.Tpo -c -o libodbc_lib_la-database_odbc.lo `test -f 'database_odbc.cpp' || echo '/home/igor/dbhandler/libodbc/'`database_odbc.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I/home/igor/dbhandler/libodbc -I.. -I../../dbinterface -DUNICODE -DUNIXODBC -I-DHAVE_UNISTD_H -DHAVE_PWD_H -DHAVE_SYS_TYPES_H -DHAVE_LONG_LONG -DSIZEOF_LONG_INT=8 -I/usr/include -g -O0 -MT libodbc_lib_la-database_odbc.lo -MD -MP -MF .deps/libodbc_lib_la-database_odbc.Tpo -c /home/igor/dbhandler/libodbc/database_odbc.cpp -fPIC -DPIC -o .libs/libodbc_lib_la-database_odbc.o libtool: compile: g++ -DHAVE_CONFIG_H -I. -I/home/igor/dbhandler/libodbc -I.. -I../../dbinterface -DUNICODE -DUNIXODBC -I-DHAVE_UNISTD_H -DHAVE_PWD_H -DHAVE_SYS_TYPES_H -DHAVE_LONG_LONG -DSIZEOF_LONG_INT=8 -I/usr/include -g -O0 -MT libodbc_lib_la-database_odbc.lo -MD -MP -MF .deps/libodbc_lib_la-database_odbc.Tpo -c /home/igor/dbhandler/libodbc/database_odbc.cpp -o libodbc_lib_la-database_odbc.o >/dev/null 2>&1 mv -f .deps/libodbc_lib_la-database_odbc.Tpo .deps/libodbc_lib_la-database_odbc.Plo /bin/sh ../libtool --tag=CXX --mode=link g++ -I../../dbinterface -DUNICODE -DUNIXODBC -I`odbc_config --cflags` -g -O0 -L../dbinterface -ldbinterface `odbc_config --libs` -lodbcinst -o libodbc_lib.la -rpath /usr/local/lib libodbc_lib_la-database_odbc.lo libtool: link: g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../lib64/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/crtbeginS.o .libs/libodbc_lib_la-database_odbc.o -L../dbinterface -ldbinterface -L/usr/lib64 -lodbc -lodbcinst -L/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0 -L/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../lib64/crtn.o -g -O0 -Wl,-soname -Wl,libodbc_lib.so.0 -o .libs/libodbc_lib.so.0.0.0 libtool: link: (cd ".libs" && rm -f "libodbc_lib.so.0" && ln -s "libodbc_lib.so.0.0.0" "libodbc_lib.so.0") libtool: link: (cd ".libs" && rm -f "libodbc_lib.so" && ln -s "libodbc_lib.so.0.0.0" "libodbc_lib.so") libtool: link: ar cru .libs/libodbc_lib.a libodbc_lib_la-database_odbc.o libtool: link: ranlib .libs/libodbc_lib.a libtool: link: ( cd ".libs" && rm -f "libodbc_lib.la" && ln -s "../libodbc_lib.la" "libodbc_lib.la" ) [/code] with the following Makefile.am: [code] ## Process this file with automake to produce Makefile.in lib_LTLIBRARIES = \ libodbc_lib.la libodbc_lib_la_SOURCES = \ database_odbc.cpp \ database_odbc.h libodbc_lib_la_CXXFLAGS = -I../../dbinterface \ -DUNICODE \ -DUNIXODBC \ -I`odbc_config \ --cflags` libodbc_lib_la_LDFLAGS = -L../dbinterface \ -ldbinterface \ `odbc_config \ --libs` \ -lodbcinst [/code] Thank you. >