Sat 19 Nov 2005 01:37:00 PM CET

Ticket #1545 (Closed: fixed)

error _eh when compiling libodbc++


Priority: normal Reporter: douglas
Severity: minor Assigned to: fgerlits
Component: development environment Status: closed
Version: 1.0 Resolution: fixed
Milestone: 1.0.2 Keywords:  

Description by douglas:

When trying to compile Ubuntu-specific .deb packages, I am running into what may be a simple problem.

I installed all packages described in the development environment docs, and still get the following message:

g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../include -DIN_ODBCXX -D_REENTRANT -D_GNU_SOURCE -g -O2 -MT drivermanager.lo -MD -MP -MF .deps/drivermanager.Tpo -c drivermanager.cpp  -fPIC -DPIC -o .libs/drivermanager.o 
../include/odbc++/drivermanager.h:102: error: ISO C++ forbids declaration of 'ErrorHandler' with no type../include/odbc++/drivermanager.h:102: error: expected ';' before '*' token 
drivermanager.cpp:31: error: 'odbc::ErrorHandler* odbc::DriverManager::eh_' is not a static member of 'class odbc::DriverManager' 
drivermanager.cpp: In static member function 'static void odbc::DriverManager::shutdown()': 
drivermanager.cpp:79: error: 'eh_' was not declared in this scope 
drivermanager.cpp:85: error: 'eh_' was not declared in this scope 
drivermanager.cpp: In static member function 'static void odbc::DriverManager::_checkInit()': 
drivermanager.cpp:124: error: 'eh_' was not declared in this scope 
drivermanager.cpp: In static member function 'static odbc::Connection* odbc::DriverManager::_createConnection()': 
drivermanager.cpp:158: error: 'eh_' was not declared in this scope 
drivermanager.cpp: In static member function 'static odbc::DataSourceList* odbc::DriverManager::getDataSources()': 
drivermanager.cpp:228: error: 'eh_' was not declared in this scope 
drivermanager.cpp: In static member function 'static odbc::DriverList* odbc::DriverManager::getDrivers()': 
drivermanager.cpp:275: error: 'eh_' was not declared in this scope 
make[5]: *** [drivermanager.lo] Error 1 
make[5]: Leaving directory `/home/douglas/livesupport/debian_build/livesupport-1.0.2ubuntu1/src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404/src' 
make[4]: *** [all-recursive] Error 1 
make[4]: Leaving directory `/home/douglas/livesupport/debian_build/livesupport-1.0.2ubuntu1/src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404' 
make[3]: *** [all] Error 2 
make[3]: Leaving directory `/home/douglas/livesupport/debian_build/livesupport-1.0.2ubuntu1/src/tools/libodbc++/libodbc++-0.2.3-20050404/tmp/libodbc++-0.2.3-20050404' 
make[2]: *** [tmp/all.stamp] Error 2 
make[2]: Leaving directory `/home/douglas/livesupport/debian_build/livesupport-1.0.2ubuntu1/src/tools/libodbc++/libodbc++-0.2.3-20050404' 
make[1]: *** [tmp/tools_setup.stamp] Error 2 
make[1]: Leaving directory `/home/douglas/livesupport/debian_build/livesupport-1.0.2ubuntu1' 
make: *** [build-arch-stamp] Error 2 
root@douglas:/home/douglas/livesupport/debian_build/livesupport-1.0.2ubuntu1# 

Changelog

Sat 19 Nov 2005 01:40:29 PM CET: Modified by maroy

    when checking out the sources, what happens when you try to run:

    livesupport/tools/libodbc++/libodbc++-0.2.3-20050404/bin/install.sh

    ? is the result the same?

    Sat 19 Nov 2005 02:59:58 PM CET: Modified by fgerlits

      The problem is that g++ 4.0 wants forward declarations of classes where 3.4 was happy without. This is fixed in the latest libodbc++ version (2.4pre3). I will upgrade to it.

      Sat 19 Nov 2005 03:05:50 PM CET: Modified by maroy

      • milestone changed from 1.1 to 1.0.x
      • owner changed from maroy to fgerlits

      make sure to check if our existing patches are either already included in 2.4pre3, or add them to the upgraded tool as well...

      please let me know when finished

      Sat 19 Nov 2005 03:13:36 PM CET: Modified by douglas

        When I try to run livesupport/tools/libodbc++/libodbc++-0.2.3-20050404/bin/install.sh, I get the following message:

        root@douglas:/home/douglas/livesupport/debian_build/livesupport-1.0.2ubuntu1/src/tools/libodbc++/libodbc++-0.2.3-20050404/bin# ./install-sh
        ./install-sh: no input file specified.
        root@douglas:/home/douglas/livesupport/debian_build/livesupport-1.0.2ubuntu1/src/tools/libodbc++/libodbc++-0.2.3-20050404/bin#
        

        Should I downgrade g++ to 3.4?

        Sat 19 Nov 2005 03:48:46 PM CET: Modified by fgerlits

          > Should I downgrade g++ to 3.4?

          No, not yet. (You may have to, if all else fails, but let's not give up just yet.)

          Sat 19 Nov 2005 04:37:43 PM CET: Modified by fgerlits

            Hm... libodbc++-2.4pre3 does not compile, even without the dont-install-some-docs patch (the other two have been incorporated into this version). It seems this is not a very stable release. 2.4pre2 was even missing some files, I guess this is an improvement on that.

            I will try the latest CVS version; if that does not work, either, I'll go back to our earlier version and just fix this drivermanager.h bug with a patch.

            Sat 19 Nov 2005 06:08:47 PM CET: Modified by fgerlits

            • resolution set to fixed
            • status changed from new to closed

            The CVS version did not compile, either. Plan B is committed, see [1813]. Please test it (I don't have gcc 4.0 installed, so I can't.)