Re: Noobie, please help!

Gal Rubinstein <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
Thanks for the explanation, things are getting clearer, which is good,
Thanks.
still got this error:

[trace]
Compiler: Default compiler
Building Makefile:
"C:\Gal\tmp\freetds-0.82\src\dblib\unittests\vc6\Makefile.win"
Executing  make...
make.exe -f "C:\Gal\tmp\freetds-0.82\src\dblib\unittests\vc6\Makefile.win"
all
g++.exe ../common.o ../t0001.o  -o "t0001.exe" -L"C:/MinGW/lib"
-L"C:/Dev-Cpp/lib" -L"C:/Gal/tmp/freetds-0.82/win32/dev-cpp" -lkernel32
-luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32
-loleaut32 -luuid -lodbc32 -lodbccp32 -lkernel32 -luser32 -lgdi32 -lwinspool
-lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32
-lodbccp32 -lntwdblib ../../../../win32/dev-cpp/libFreeTDS.a

C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot
find -lntwdblib
collect2: ld returned 1 exit status

make.exe: *** [t0001.exe] Error 1

Execution terminated

[/trace]

'cannot find -lntwdblib'  did I need to build something else before (dblib,
I presume) ? if so, what/how should I go about doing it?
meaning, I build the FreeTDS.a/dll  (with a very long trace of warnings),
but including it didn't help the proccess.

Thank you for all the help,
One man army :-)
Gal,

hopefully after we successfully go through this, we can write some articale
for other noobies...

On Sun, Mar 8, 2009 at 11:33 PM, James K. Lowden <[email protected]>wrote:

> Gal Rubinstein wrote:
> > gcc.exe -c ../common.c -o ../common.o -I"C:/MinGW/include"
> > -I"C:/Gal/tmp/freetds-0.82/win32"  -I"C:/Gal/tmp/freetds-0.82/include"
> > -D__GNUWIN32__ -W -DWIN32 -DNDEBUG -D_CONSOLE -D_MBCS
> > -DFREETDS_SRCDIR=\"..\" -DDBNTWIN32
> >
> > In file included from ../common.c:1:
> > ../common.h:41:1: warning: "SYBESMSG" redefined
> > In file included from C:/Gal/tmp/freetds-0.82/include/sybfront.h:23,
> >                  from C:/Gal/tmp/freetds-0.82/include/sqlfront.h:23,
> >                  from ../common.h:28,
> >                  from ../common.c:1:
>
> That might be my handiwork.  OTOH, I'm not sure you're doing the right
> thing be defining DBNTWIN32.  Let's sort a few things out.
>
> Building FreeTDS for Win32 is a little bit of a novelty.  I don't have
> hard figures, but I'd venture to say >95% of FreeTDS users use some flavor
> of Unix.  Within the Win32 minority, a fraction use Dev-C++.  None of this
> matters -- you can be an army of one -- except that as a trailblazer
> you're bound to find the going a little rough, doubly so if you're using
> an unfamiliar toolset.
>
> Also bear in mind that until recently Microsoft provided its own db-lib
> (ntwdblib.dll) which works very well within its limitations.  I suspect
> FreeTDS's Win32 implementation is picking up steam because Microsoft has,
> to say the least, de-emphasized db-lib as a technology, to the extent that
> as of 2008 they no longer ship binaries or documentation for it.  Nowadays
> you're supposed to master a namespace in a framework on a platform
> instead, or something like that.
>
> Anyway, that's why there's no tutorial.  :-)
>
> That said, we want the db-lib unittests to compile and link against any
> db-lib implementation, not just FreeTDS's.  That's something of a gem in
> the rough; I'm not sure how well it works.  But that's the intention.
>
> Microsoft made a lot of gratuitous changes to the db-lib symbols back when
> it licensed Sybase's code.  In particular, SYB this became SQL that e.g.
> SYBESMSG in Sybase's sybdb.h became SQLESMSG in sqldb.h.  Programs meant
> to compile against both vendor's header files need some way to translate
> between the two naming schemes.
>
> FreeTDS follows Sybase's nomenclature for the most part.  I recently added
> Microsoft's preprocessor symbols to FreeTDS's sqldb.h, so that if you
> include sqldb.h -- as a program written for Microsoft's implementation
> would do -- you get Microsoft's symbols.  That helped me get a
> formerly-for-Microsoft-dblib Win64 application working (although I
> probably wasn't the first).  Those changes are in the nightly snapshot,
> not 0.82.
>
> In src/dblib/unittests/common.h you see the opposite: Sybase's symbols
> defined in terms of Microsoft's.  That is done because the unit tests are
> written foremost for FreeTDS and use (again) Sybase's nomenclature.  If
> you want to compile a unit test against Microsoft's headers (to test
> compatability) common.h defines e.g. SYBINT4 for you as SQLINT4, and
> Microsoft's sqldb.h defines SQLINT4.  The unit tests use SYBINT4
> regardless.
>
> However, something has to tell common.h to provide Microsoft's names and,
> if Microsoft's sqldb.h is to be used, to include windows.h first (because
> that's Microsoft's requirement).  What to do?
>
> We could have made you define, say, USE_MICROSOFT_DBLIB or
> DB_LIB_IMPL=MICROSOFT.  But it's simpler, in a way, to check for
> DBNTWIN32, which is *not* needed by any FreeTDS code and *is* needed by
> Microsoft's header files.  Cf.
> http://msdn.microsoft.com/en-us/library/aa936971(SQL.80).aspx<http://msdn.microsoft.com/en-us/library/aa936971%28SQL.80%29.aspx>
> .
>
> Is that documented?  Sort of.  Nowhere in the FreeTDS documentation is
> DBNTWIN32 mentioned, because it's not needed.  It is a documented need of
> Microsoft's.  So, when DBNTWIN32 is defined, it's reasonable for the code
> to infer that the program is being compiled for Microsoft db-lib.  Maybe
> not the best solution, but a reasonable one.
>
> So: the error messages you're seeing relate to the fact that DBNTWIN32 is
> defined, but FreeTDS's header files are used instead of Microsoft's.
> They'll disappear if you don't define DBNTWIN32, which afaict you can do
> without harm.
>
> Hope that helps.
>
> > my boss insists that no ODBC will be used so I presume that db-lib is
> > the answer
>
> Yes.  FWIW IMO the boss is right.  (Go, boss!)  Using ODBC adds
> complexity.  If you don't need its features, it's easier to use db-lib.
> You might find it adds to your charisma, too, but that's also
> undocumented.
>
> --jkl
> _______________________________________________
> FreeTDS mailing list
> [email protected]
> http://lists.ibiblio.org/mailman/listinfo/freetds
>



-- 
Yours,
Gal
[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.