Menu

Won't build

Help
Klaus Muth
2004-07-15
2004-07-15
  • Klaus Muth

    Klaus Muth - 2004-07-15

    Hi
    > ./bootstrap
    rm: cannot remove `aclocal.m4': No such file or directory
    /usr/bin/autoheader2.13: Symbol `HAVE_VARCHAR_H' is not covered by /usr/share/autoconf2.13/acconfig.h
    src/Makefile.am:18: @LTLIBOBJS@ seen but never set in `configure.in'
    autoconf: Undefined macros:
    configure.in:198:LTLIBOJBS=`echo X"$AC_LIBOBJ"`
    configure.in:30:AC_FUNC_MALLOC

    > ./configure
    [ ...jadda jadda... ]
    .checking for memset... yes
    checking for strchr... yes
    checking for strtol... yes
    /configure: AC_FUNC_MALLOC: command not found
    checking for Cygwin environment... no
    checking for mingw32 environment... no
    checking host system type... i686-pc-linux-gnu
    [ ...jadda jadda... ]
    creating ./config.status
    creating Makefile
    creating src/Makefile
    creating src/test/Makefile
    sed: can't read ./src/test/Makefile.in: No such file or directory
    creating config.h

    > make
    cd . && autoheader
    /usr/bin/autoheader2.13: Symbol `HAVE_VARCHAR_H' is not covered by /usr/share/autoconf2.13/acconfig.h
    make: *** [stamp-h.in] Error 1

    This is qtinformix 0.2 from CVS with
    Informix 7.03SE
    qt-x11-free-3.2.2
    ESQL/C compiler and version... esql (version 930)
    gcc 2.95.4
    Debian woody linux

    Any hints?

     
    • Klaus Muth

      Klaus Muth - 2004-07-15

      Ok, it _does_ build...
      1. changed to src dir
      2. did the "make" there
      3. copied the .libs/libqtinformix.so.0.0.0 and the links to the plugin dir
      4. started small test app and (*tadaaa*)

      ./test1
      ./test1: relocation error: /usr/local/qt-x11-free-3.2.2/plugins/sqldrivers/libqsqlinformix.so: undefined symbol: _15QINFORMIXDriverP7QObjectPCc

      *sigh*

      Is that something with the only warning I Get from from point 2. above?

      /bin/sh ../libtool --mode=link c++  -pipe -Wall -W -O2 -DQT_THREAD_SUPPORT -DQT_SHARED  -o libqsqlinformix.la -rpath /opt/informix/lib --whole-archive -L/opt/informix/lib/esql -L/opt/informix/lib main.lo decsci.lo qsql_informix.cpp -lifsql -lifasf -lifgen -lifos -lifgls -lnetstub -lc -lm -ldl -lcrypt /opt/informix/lib/esql/checkapi.o -lifglx -lpthread

      *** Warning: Linking the shared library libqsqlinformix.la against the non-libtool
      *** objects  /opt/informix/lib/esql/checkapi.o is not portable!

       
      • Klaus Muth

        Klaus Muth - 2004-07-15

        Me again...

        Found my solution:
        1. Problem with bootstrap:
           /usr/bin/autoheader2.13: Symbol `HAVE_VARCHAR_H' is not covered by /usr/share/autoconf2.13/acconfig.h
          
           Solution: create file accconfig.h with single line #undef HAVE_VARCHAR_H

           now bootstrap and ./configure runs like a charm ;).

        2. undefined symbol:
           running the missing symbol through c++filt gives
           QINFORMIXDriver::QINFORMIXDriver(QObject *, char const *)
           which is defined in qsql_informix.ec

           qsql_informix.ec is compiled to qsql_informix.cc by esqlc++

           The rule in my Makefile is:
           .ec.cpp:
            $(ESQL) $(ESQL_FLAGS) -c $<

           That is: the expected output is cpp, the real is cc. I added a line
            mv $(addsuffix .cc,$(basename $<)) $@

           Now, the resulting qsql_informix.cpp is not compiled and not linked to the driver.
           Solved by changing th line
           libqsqlinformix_la_OBJECTS =  main.lo decsci.lo qsql_informix.cpp
           to
           libqsqlinformix_la_OBJECTS =  main.lo decsci.lo qsql_informix.lo

        3. The qt-includes are not found by gcc and esql++, I added
           -I($QTINCDIR) to the INCLUDES and ESQL_FLAGS

        *phew*...

        The resulting driver works now for connecting and simple selects.

        klaus

         

Log in to post a comment.