Petros, FYI.  gcc also has several different switches for object ouput:
eg. "gcc -c -static  ..."

It might help to investigate these options during steps to compile sqlite.c
and your main program to avoid dynamic/static symbol conflicts.

       -static
           On systems that support dynamic linking, this prevents linking
with the shared libraries.  On other systems, this option has no effect.

       -shared
           Produce a shared object which can then be linked with other
objects to form an executable.  Not all systems support this option.  For
predictable results,
           you must also specify the same set of options used for
compilation (-fpic, -fPIC, or model suboptions) when you specify this
linker option.[1]

       -shared-libgcc
       -static-libgcc
           On systems that provide libgcc as a shared library, these
options force the use of either the shared or static version,
respectively.  If no shared version
           of libgcc was built when the compiler was configured, these
options have no effect.

           There are several situations in which an application should use
the shared libgcc instead of the static version.  The most common of these
is when the
           application wishes to throw and catch exceptions across
different shared libraries.  In that case, each of the libraries as well as
the application itself
           should use the shared libgcc.

           Therefore, the G++ and GCJ drivers automatically add
-shared-libgcc whenever you build a shared library or a main executable,
because C++ and Java programs
           typically use exceptions, so this is the right thing to do.

--------------
I have a side question for you, if you can answer.
How did Omilia implement their speaker independent speech recognition
corpus?  Was it licensed from elsewhere or developed in house?

Peter



On Wed, Feb 14, 2018 at 8:27 AM, Petros Marinos <pmari...@omilia.com> wrote:

> Thank you Arjen and Simon for your answers, really helpful!
>
> While there was progress by following the two commands noted in Arjen’s
> answer and creating the libsqlite.a file, I stumbled upon the following
> errors:
>
> [LD] astdb2sqlite3.o db1-ast/libdb1.a -> astdb2sqlite3
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__libc_sigaction':
> (.text+0x89f0): multiple definition of `__libc_sigaction'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/
> libc.a(sigaction.o):(.text+0x20): first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__libc_fsync':
> (.text+0x8100): multiple definition of `__libc_fsync'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(fsync.o):(.text+0x0):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__connect_nocancel':
> (.text+0x7dc9): multiple definition of `__connect_nocancel'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(connect.o):(.text+0x9):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__libc_fcntl':
> (.text+0x7c40): multiple definition of `__libc_fcntl'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(fcntl.o):(.text+0xa0):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__fsync_nocancel':
> (.text+0x8109): multiple definition of `__fsync_nocancel'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(fsync.o):(.text+0x9):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `_IO_funlockfile':
> (.text+0x8990): multiple definition of `_IO_funlockfile'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/
> libc.a(funlockfile.o):(.text+0x0): first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__libc_nanosleep':
> (.text+0x8220): multiple definition of `__libc_nanosleep'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/
> libc.a(nanosleep.o):(.text+0x0): first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__read':
> (.text+0x7ae0): multiple definition of `__libc_read'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(read.o):(.text+0x0):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__open_nocancel':
> (.text+0x8289): multiple definition of `__open_nocancel'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(open.o):(.text+0x9):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__lseek_nocancel':
> (.text+0x8169): multiple definition of `__lseek_nocancel'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(llseek.o):(.text+0x9):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__read_nocancel':
> (.text+0x7ae9): multiple definition of `__read_nocancel'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(read.o):(.text+0x9):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `send':
> (.text+0x7f90): multiple definition of `__libc_send'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(send.o):(.text+0x0):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__libc_close':
> (.text+0x7b40): multiple definition of `__libc_close'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(close.o):(.text+0x0):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__open':
> (.text+0x8280): multiple definition of `__libc_open'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(open.o):(.text+0x0):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__write_nocancel':
> (.text+0x7a89): multiple definition of `__write_nocancel'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(write.o):(.text+0x9):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__close_nocancel':
> (.text+0x7b49): multiple definition of `__close_nocancel'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(close.o):(.text+0x9):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__fcntl_nocancel':
> (.text+0x7ba0): multiple definition of `__fcntl_nocancel'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(fcntl.o):(.text+0x0):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__llseek':
> (.text+0x8160): multiple definition of `__libc_lseek'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(llseek.o):(.text+0x0):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `sigaction':
> (.text+0x8be0): multiple definition of `__sigaction'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/
> libc.a(sigaction.o):(.text+0x210): first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__errno_location':
> (.text+0x9df0): multiple definition of `__errno_location'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/
> libc.a(errno-loc.o):(.text+0x0): first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `_IO_funlockfile':
> (.text+0x8990): multiple definition of `__funlockfile'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/
> libc.a(funlockfile.o):(.text+0x0): first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__lll_lock_wait_private':
> (.text+0x77f0): multiple definition of `__lll_lock_wait_private'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/
> libc.a(libc-lowlevellock.o):(.text+0x0): first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__write':
> (.text+0x7a80): multiple definition of `__libc_write'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(write.o):(.text+0x0):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__nanosleep_nocancel':
> (.text+0x8229): multiple definition of `__nanosleep_nocancel'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/
> libc.a(nanosleep.o):(.text+0x9): first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `connect':
> (.text+0x7dc0): multiple definition of `__libc_connect'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(connect.o):(.text+0x0):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `__lll_unlock_wake_private':
> (.text+0x78a0): multiple definition of `__lll_unlock_wake_private'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/
> libc.a(libc-lowlevellock.o):(.text+0x30): first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `raise':
> (.text+0x8880): multiple definition of `raise'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libc.a(raise.o):(.text+0x0):
> first defined here
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpthread.a(libpthread.o):
> In function `sem_open':
> (.text+0x6a23): warning: the use of `mktemp' is dangerous, better use
> `mkstemp'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libsqlite3.a(sqlite3.o):
> In function `unixDlOpen':
> sqlite3.c:(.text+0xf4d2): undefined reference to `dlopen'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libsqlite3.a(sqlite3.o):
> In function `unixDlError':
> sqlite3.c:(.text+0xf4f1): undefined reference to `dlerror'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libsqlite3.a(sqlite3.o):
> In function `unixDlSym':
> sqlite3.c:(.text+0xf53e): undefined reference to `dlsym'
> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libsqlite3.a(sqlite3.o):
> In function `unixDlClose':
> sqlite3.c:(.text+0xf570): undefined reference to `dlclose'
> collect2: error: ld returned 1 exit status
> make[1]: *** [astdb2sqlite3] Error 1
> make: *** [utils] Error 2
>
> There seems to be a conflict concerning the libc.a and libpthread.a static
> libraries? Maybe libc.a and/or libpthread.a are included in libsqlite3.a,
> but are conflicting with the equivalent static libraries provided by the
> "glibc-static" rpm?
>
> I would really appreciate your thoughts! :-)
>
> Best Regards,
> Petros
>
> On 14 Feb 2018, 16:33 +0200, Arjen Markus <arjen.mar...@deltares.nl>,
> wrote:
> > If you use the amalgamated source, there is only one file to be
> compiled. That can be as simple as:
> >
> > gcc -c sqlite3.c
> >
> > ar r libsqlite3.a sqlite3.o
> >
> >
> >
> > Any further dependencies are up to the linker. No need to worry about
> that.
> >
> >
> >
> > Regards,
> >
> >
> >
> > Arjen
> >
> >
> > > -----Original Message-----
> > > From: sqlite-users [mailto:sqlite-users-bounces@
> mailinglists.sqlite.org] On Behalf
> > > Of Petros Marinos
> > > Sent: Wednesday, February 14, 2018 3:30 PM
> > > To: sqlite-users@mailinglists.sqlite.org
> > > Subject: [sqlite] Static sqlite3 library for Linux
> > >
> > > Greetings dears!
> > >
> > > While I am trying to build a static library of another tool which is
> dependent to sqlite,
> > > I need to use an sqlite3 static library as well. Still, in my Centos
> 7.4 system, I
> > > cannot find one. The error is shown below:
> > >
> > > /bin/ld: cannot find -lsqlite3
> > > collect2: error: ld returned 1 exit status
> > > make[1]: *** [astdb2sqlite3] Error 1
> > > make: *** [utils] Error 2
> > >
> > > When I look for one with:
> > >
> > > yum provides */libsqlite*.a
> > >
> > > I find the Windows version:
> > >
> > > /usr/x86_64-w64-mingw32/sys-root/mingw/lib/libsqlite3.a
> > >
> > > Which of course is useless:
> > >
> > > /usr/lib/gcc/x86_64-redhat-linux/4.8.5/.../.../.../.../lib64/libsqlite3.a:
> error adding
> > > symbols: File format not recognized
> > > collect2: error: ld returned 1 exit status
> > > make[1]: *** [astdb2sqlite3] Error 1
> > > make: *** [utils] Error 2
> > >
> > > Is there any chance that I can find a Linux flavour static sqlite3
> library, or do I have
> > > to build from source?
> > >
> > > And if I have to build from source, is it recommended to use the
> sqlite-autoconf or
> > > the sqlite-src pkg? Or does the amalgamation file could be of any use,
> so as to
> > > avoid compilation etc?
> > >
> > > PS: One final relevant question, does the resulting libsqlite3.a file
> (when built from
> > > source), includes any other libraries like libc.a, libthread.a etc? Is
> there a way to
> > > avoid this?
> > >
> > > Thank you in advance for your time!
> > >
> > > Best Regards,
> > > Petros
> > > _______________________________________________
> > > sqlite-users mailing list
> > > sqlite-users@mailinglists.sqlite.org
> > > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
> >
> > DISCLAIMER: This message is intended exclusively for the addressee(s)
> and may contain confidential and privileged information. If you are not the
> intended recipient please notify the sender immediately and destroy this
> message. Unauthorized use, disclosure or copying of this message is
> strictly prohibited. The foundation 'Stichting Deltares', which has its
> seat at Delft, The Netherlands, Commercial Registration Number 41146461, is
> not liable in any way whatsoever for consequences and/or damages resulting
> from the improper, incomplete and untimely dispatch, receipt and/or content
> of this e-mail.
> > _______________________________________________
> > sqlite-users mailing list
> > sqlite-users@mailinglists.sqlite.org
> > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to