[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: odbc_config missing



Hi,

On Wed, Jul 20, 2022 at 7:28 PM Greg Wooledge <greg@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.

>


Reply to: