Quantcast

a compilation error about string literals in the version 2.0.4 (155)

classic Classic list List threaded Threaded
1 message Options
me
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

a compilation error about string literals in the version 2.0.4 (155)

me
Hello. When compiling the version 2.0.4 (155) of OdbcJdbc for Linux
(ArchLinux, package: https://aur.archlinux.org/packages/firebird-odbc/ 
), a compilation error appears. AFAIK, it appears because GCC moved to
the "C++11" standard, and the source code is not compatible with this
standard. The source code includes macros for string literals that clash
with the new C feature called "user-defined literals", see
http://en.cppreference.com/w/cpp/language/user_literal . I am not
familiar with this obscure feature, so I am not able to fix the source
code. Instead, I give GCC a parameter to parse the source code with the
old standard "C++03". I patched
"OdbcJdbc/Builds/Gcc.lin/makefile.linux". IMO, the source code should be
fixed in the near future.

The error message: {{{
In file included from ../../IscDbc/IscDatabaseMetaData.cpp:47:0:
../../IscDbc/IscDatabaseMetaData.cpp: In member function ‘virtual const
char* IscDbcLibrary::IscDatabaseMetaData::getDriverVersion()’:
../../IscDbc/../SetupAttributes.h:139:65: помилка: unable to find string
literal operator ‘operator""buildnum’ with ‘const char [7]’, ‘long
unsigned int’ arguments
  #define BUILD_DRIVER_VERSION(major,minor,buildnum)
major"."minor"."buildnum
                                                                  ^
../../IscDbc/../SetupAttributes.h:150:25: зауваження: in expansion of
macro ‘BUILD_DRIVER_VERSION’
  #define DRIVER_VERSION  BUILD_DRIVER_VERSION( ZERO_MAJOR BUILD_STR2(
MAJOR_VERSION ), ZERO_MINOR BUILD_STR2( MINOR_VERSION ), ZERO_BUILDNUM
BUILD_STR2( BUILDNUM_VERSION ) )
                          ^~~~~~~~~~~~~~~~~~~~
../../IscDbc/IscDatabaseMetaData.cpp:350:9: зауваження: in expansion of
macro ‘DRIVER_VERSION’
   return DRIVER_VERSION;
          ^~~~~~~~~~~~~~
make: *** [makefile.linux:127: Release_x86_64/obj/IscDatabaseMetaData.o]
Помилка 1
}}}

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Firebird-odbc-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/firebird-odbc-devel
Loading...