--- In [email protected], Saifi Khan <saifi.k...@...> wrote:
>
> Hi all:
> 
> qt4-4.4.3 compilation from sources runs into an interesting
> compilation issue.
> 
> --
> /usr/local/include/sqltypes.h:401: error: ISO C++ forbids
> declaration of 'SQLBIGINT' with no type
> /usr/local/include/sqltypes.h:404: error: ISO C++ forbids
> declaration of 'SQLUBIGINT' with no type
> --
> 
> i've uploaded the sqltypes.h file at
> http://twincling.pastebin.com/f70211c16
> 
> Please see highlighted line numbers 400 and 403.
> 
> The relevant build log is seen here:
> 
> ===>  Installing for qt4-4.4.3
> ===>   qt4-4.4.3 depends on package: qt4-l10n>=4.4.3 - found
> ===>   qt4-4.4.3 depends on file:
/usr/local/lib/qt4/plugins/sqldrivers/libqsqlmysql.so - found
> ===>   qt4-4.4.3 depends on file:
/usr/local/lib/qt4/plugins/sqldrivers/libqsqlodbc.so - not found
> ===>    Verifying install for
/usr/local/lib/qt4/plugins/sqldrivers/libqsqlodbc.so in
/usr/ports/databases/qt4-odbc-plugin
> ===>  Building for qt4-odbc-plugin-4.4.3
> Warning: Object directory not changed from original
/usr/ports/databases/qt4-odbc-plugin/work/qt-x11-opensource-src-4.4.3
> c++ -fpic -DPIC -O2 -fno-strict-aliasing -pipe
-Isrc/sql/drivers/odbc  -I/usr/local/include/qt4 
-I/usr/local/include/qt4/Qt  -I/usr/local/include  
-DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII  -DQT_PLUGIN
-DQT_SQL_LIB -DQT_CORE_LIB -D_LARGEFILE64_SOURCE  -D_LARGEFILE_SOURCE
-DQT_SHARED -c src/plugins/sqldrivers/odbc/main.cpp -o main.So
> In file included from /usr/local/include/sql.h:24,
>                  from
src/plugins/sqldrivers/odbc/../../../sql/drivers/odbc/qsql_odbc.h:69,
>                  from src/plugins/sqldrivers/odbc/main.cpp:40:
> /usr/local/include/sqltypes.h:401: error: ISO C++ forbids
declaration of 'SQLBIGINT' with no type
> /usr/local/include/sqltypes.h:404: error: ISO C++ forbids
declaration of 'SQLUBIGINT' with no type
> *** Error code 1
> 
> Stop in
/usr/ports/databases/qt4-odbc-plugin/work/qt-x11-opensource-src-4.4.3.
> *** Error code 1
> 
> Stop in /usr/ports/databases/qt4-odbc-plugin.
> *** Error code 1
> 
> Stop in /usr/ports/devel/qt4.
> *** Error code 1
> 
> Stop in /usr/ports/devel/qt4.
> 
> --
> 
> Any suggestions or pointers on how this issue can be resolved?
> 
> thanks
> Saifi.
>

Hi Saifi,

I think the problem here is that ODBCINT64 and UODBCINT64 aren't being
recognized as a 'type' but as a 'modifier' (for example if i declare
"register x" as a variable, ISO C++ recognizes "register" as a
'modifier' and not a 'type' and will give the error "ISO C++ forbids
declaration of 'x' with no type"). So maybe in the lines above it
where ODBCINT64 and UODBCINT64 were defined, there was some error
while compilation.

I think you are using a 64-bit OS. As far as i remember, UNIX uses
"long long" for 64 bit variables and windows uses "__int64". So... try
replacing 

#typedef ODBCINT64       SQLBIGINT;
with
#typedef long long       SQLBIGINT;

and

#typedef UODBCINT64      SQLUBIGINT;
with
#typedef unsigned long long      SQLUBIGINT;

This might work. Not sure.
If it works,... replace the sqltypes.h with the original file after
the compilation, as this change might cause problems later on.

Regards,
Siddharth Pal

Reply via email to