D2 (Debian) + MSSQL

Sergey via Digitalmars-d digitalmars-d at puremagic.com
Mon Oct 13 21:46:17 PDT 2014


I try to do in this:
D version: http://pastebin.com/7tGyytDh
Tds file:  http://pastebin.com/JCA8XQH0
C version: http://pastebin.com/FWJM4B6X

First I checked the C version.

When I did this:
$ gcc -o connect_mssql connect_mssql.c
I got these errors:

/tmp/ccmW3YHR.o: In function `main':
connect_mssql.c:(.text+0x18): undefined reference to `dbinit'
connect_mssql.c:(.text+0x50): undefined reference to `dblogin'
connect_mssql.c:(.text+0xaf): undefined reference to `dbsetlname'
connect_mssql.c:(.text+0xce): undefined reference to `dbsetlname'
connect_mssql.c:(.text+0xed): undefined reference to `dbsetlname'
connect_mssql.c:(.text+0x12d): undefined reference to `dbsetlname'
connect_mssql.c:(.text+0x14c): undefined reference to `tdsdbopen'
connect_mssql.c:(.text+0x19b): undefined reference to `dbuse'
connect_mssql.c:(.text+0x1dd): undefined reference to 
`dbloginfree'
connect_mssql.c:(.text+0x1f4): undefined reference to `dbcmd'
connect_mssql.c:(.text+0x203): undefined reference to `dbsqlexec'
connect_mssql.c:(.text+0x245): undefined reference to `dbresults'
connect_mssql.c:(.text+0x277): undefined reference to `dbbind'
connect_mssql.c:(.text+0x2a9): undefined reference to `dbbind'
connect_mssql.c:(.text+0x2e4): undefined reference to `dbnextrow'
connect_mssql.c:(.text+0x2f8): undefined reference to `dbfreebuf'
connect_mssql.c:(.text+0x307): undefined reference to `dbclose'
connect_mssql.c:(.text+0x30c): undefined reference to `dbexit'
collect2: error: ld returned 1 exit status

And then I added this: "-l sybdb" and it works.
$ gcc -o connect_mssql connect_mssql.c -l sybdb
$ ./connect_mssql
(I got some data from sql server)

Then I tried to do it on D:
$ dmd test_tds_connect.d
And I received similar errors:

test_tds_connect.o: In function `_Dmain':
test_tds_connect.d:(.text._Dmain+0x64): undefined reference to 
`dbinit'
test_tds_connect.d:(.text._Dmain+0x88): undefined reference to 
`dblogin'
test_tds_connect.d:(.text._Dmain+0xc4): undefined reference to 
`dbsetluser'
test_tds_connect.d:(.text._Dmain+0xdb): undefined reference to 
`dbsetlpwd'
test_tds_connect.d:(.text._Dmain+0xf2): undefined reference to 
`dbsetlapp'
test_tds_connect.d:(.text._Dmain+0x12c): undefined reference to 
`dbsetlhost'
test_tds_connect.d:(.text._Dmain+0x140): undefined reference to 
`dbopen'
test_tds_connect.d:(.text._Dmain+0x18c): undefined reference to 
`dbuse'
test_tds_connect.d:(.text._Dmain+0x1df): undefined reference to 
`dbloginfree'
test_tds_connect.d:(.text._Dmain+0x1f0): undefined reference to 
`dbcmd'
test_tds_connect.d:(.text._Dmain+0x1fe): undefined reference to 
`dbsqlexec'
test_tds_connect.d:(.text._Dmain+0x22b): undefined reference to 
`dbresults'
test_tds_connect.d:(.text._Dmain+0x243): undefined reference to 
`dbbind'
test_tds_connect.d:(.text._Dmain+0x25b): undefined reference to 
`dbbind'
test_tds_connect.d:(.text._Dmain+0x273): undefined reference to 
`dbbind'
test_tds_connect.d:(.text._Dmain+0x281): undefined reference to 
`dbnextrow'
test_tds_connect.d:(.text._Dmain+0x2d4): undefined reference to 
`dbfreebuf'
test_tds_connect.d:(.text._Dmain+0x2df): undefined reference to 
`dbclose'
test_tds_connect.d:(.text._Dmain+0x2e4): undefined reference to 
`dbexit'
collect2: error: ld returned 1 exit status
--- errorlevel 1

I need to add sybdb when building on D?
How to do it?

Thanks in advance.


More information about the Digitalmars-d mailing list