compile and link a C with embedded SQl program using gcc and DB2

Sinha, Vinita Vinita_Sinha@tesseract.com
Thu Aug 19 18:44:00 GMT 2004


Hi,
I am trying to compile a simple sql program using c and DB2 . It fails in the link step.Which are the other Libraries I need to add in the link step to make it work ?

This is the bat file for compile


@echo off
rem Licensed Materials - Property of IBM
if exist "%1.sqx" goto embedded
if exist "%1.sqc" goto embedded
goto non_embedded

:embedded
rem Precompile and bind the program.
call embprep %1 %2 %3 %4
rem  Compile the program.
if exist "%1.cxx" goto cpp_emb
goto link_embedded
:cpp_emb
rem Link the program.
:link_embedded
gcc -I"C:\Program Files\SQLLIB\include" -I"C:\Program Files\SQLLIB\samples\c" -I"C:\Program Files\SQLLIB\samples\cli" -O0 -g3 -Wall -c -fmessage-length=0 -osqlexample.o sqlexample.c
gcc -L"C:\Program Files\SQLLIB\include" -L"C:\Program Files\SQLLIB\lib\db2api.lib" -L"C:\Program Files\SQLLIB\samples\c"  -L"C:\Program Files\SQLLIB\bin"    -o2006b.exe sqlexample.o    
goto exit

The compile log with errors :

C:\R20006\cPrograms>bldappgcc.bat sqlexample Replica1 db2admin db2admin

   Database Connection Information

 Database server        = DB2/NT 8.1.0
 SQL authorization ID   = DB2ADMIN
 Local database alias   = REPLICA1


LINE    MESSAGES FOR sqlexample.sqc
------  --------------------------------------------------------------------
        SQL0060W  The "C" precompiler is in progress.
        SQL0091W  Precompilation or binding was ended with "0"
                  errors and "0" warnings.

LINE    MESSAGES FOR sqlexample.bnd
------  --------------------------------------------------------------------
        SQL0061W  The binder is in progress.
        SQL0091N  Binding was ended with "0" errors and "0" warnings.
DB20000I  The SQL command completed successfully.

C:\R20006\cPrograms>rem  Compile the program.

C:\R20006\cPrograms>if exist "sqlexample.cxx" goto cpp_emb

C:\R20006\cPrograms>goto link_embedded

C:\R20006\cPrograms>gcc -I"C:\Program Files\SQLLIB\include" -I"C:\Program Files\
SQLLIB\samples\c" -I"C:\Program Files\SQLLIB\samples\cli" -O0 -g3 -Wall -c -fmes
sage-length=0 -osqlexample.o sqlexample.c
sqlexample.sqc:73:18: warning: character constant too long for its type
sqlexample.sqc:73:30: warning: character constant too long for its type
sqlexample.sqc:73:42: warning: character constant too long for its type
sqlexample.sqc: In function `main':
sqlexample.sqc:73: warning: passing arg 1 of `DbConnect' makes pointer from inte
ger without a cast
sqlexample.sqc:73: warning: passing arg 2 of `DbConnect' makes pointer from inte
ger without a cast
sqlexample.sqc:73: warning: passing arg 3 of `DbConnect' makes pointer from inte
ger without a cast
sqlexample.sqc:87: warning: control reaches end of non-void function
sqlexample.sqc: In function `TbBasicSelect':
sqlexample.sqc:121: warning: unused variable `rc'

C:\R20006\cPrograms>gcc -L"C:\Program Files\SQLLIB\include" -L"C:\Program Files\
SQLLIB\lib\db2api.lib" -L"C:\Program Files\SQLLIB\samples\c"  -L"C:\Program File
s\SQLLIB\bin"    -o2006b.exe sqlexample.o
sqlexample.o(.text+0xce): In function `main':
/cygdrive/c/R20006/cPrograms/sqlexample.sqc:84: undefined reference to `_sqlastr
t@12'
sqlexample.o(.text+0xfd):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:84: undefin
ed reference to `_sqlacall@20'
sqlexample.o(.text+0x10c):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:84: undefi
ned reference to `_sqlastop@4'
sqlexample.o(.text+0x24a): In function `DbConnect':
/cygdrive/c/R20006/cPrograms/sqlexample.sqc:105: undefined reference to `_sqlast
rt@12'
sqlexample.o(.text+0x271):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:105: undef
ined reference to `_sqlaaloc@16'
sqlexample.o(.text+0x31c):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:105: undef
ined reference to `_sqlasetda@24'
sqlexample.o(.text+0x34b):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:105: undef
ined reference to `_sqlacall@20'
sqlexample.o(.text+0x35a):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:105: undef
ined reference to `_sqlastop@4'
sqlexample.o(.text+0x380):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:111: undef
ined reference to `_sqlastrt@12'
sqlexample.o(.text+0x3a7):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:111: undef
ined reference to `_sqlaaloc@16'
sqlexample.o(.text+0x406):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:111: undef
ined reference to `_sqlasetda@24'
sqlexample.o(.text+0x435):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:111: undef
ined reference to `_sqlacall@20'
sqlexample.o(.text+0x444):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:111: undef
ined reference to `_sqlastop@4'
sqlexample.o(.text+0x4b1): In function `TbBasicSelect':
/cygdrive/c/R20006/cPrograms/sqlexample.sqc:126: undefined reference to `_sqlast
rt@12'
sqlexample.o(.text+0x4d8):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:126: undef
ined reference to `_sqlaaloc@16'
sqlexample.o(.text+0x538):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:126: undef
ined reference to `_sqlasetda@24'
sqlexample.o(.text+0x567):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:126: undef
ined reference to `_sqlacall@20'
sqlexample.o(.text+0x576):/cygdrive/c/R20006/cPrograms/sqlexample.sqc:126: undef
ined reference to `_sqlastop@4'
collect2: ld returned 1 exit status

C:\R20006\cPrograms>rem link -debug -out:sqlexample.exe sqlexample.obj utilemb.o
bj db2api.lib

C:\R20006\cPrograms>goto exit
The system cannot find the batch label specified - exit

C:\R20006\cPrograms>

Any help will be appreciated
Thanks
Vinita


























































































































More information about the Gcc-help mailing list