Re: 0.83.dev.20100507 and Visual Studio 2010

Harry Sfougaris <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
On 08 Μαϊ 2010, at 8:23 μ.μ., Paul Thurston wrote:

> Harry:
> 
> Yes, I understand that you are working on a dev branch of the code.
> I thought your goal here was to get your QT application up and running on Windows using FreeTDS as quickly as possible.
> 
Sorry, I thought it might be interesting to some people that know how to actually fix it.

> If that is the case, might I humbly suggest you use the Stable branch of code to this end?
> 
The following is all regarding 0.82:
----------------------------------------------------
I greatly appreciate your help.
I managed to compile it 0.82 before. With your help of course I am now linking it correctly (I wasn't adding dblib.lib and libTDS.lib to FreeTDS).
The problem was, I could not even create a simple project using it not even from within Visual Studio.
In my simple Visual C++ Console application, I do the following:
- I add in the include directories C:\freetds-0.82\include
- I add to linker input the 3 lib files (dblib.lib, libTDS.lib and FreeTDS.lib)
- I add to linker directories where these are

- In my source code file I add
- #include "sybdb.h"
and in
_tmain(....) {
  dbinit();
}
When trying to compile, I get an error about the missing file "tds_sysdep_public.h"
Looking in the include directory I see there is a file named "tds_sysdep_public.h.in", so I remove the .in extension.

Attempting to build, I get all the following linker errors:
Error	1	error LNK2001: unresolved external symbol gethostname	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(mem.obj)	kklkl
Error	2	error LNK2001: unresolved external symbol inet_addr	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(config.obj)	kklkl
Error	3	error LNK2001: unresolved external symbol inet_addr	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	4	error LNK2001: unresolved external symbol ntohs	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(config.obj)	kklkl
Error	5	error LNK2001: unresolved external symbol ntohs	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	6	error LNK2001: unresolved external symbol gethostbyname	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(threadsafe.obj)	kklkl
Error	7	error LNK2001: unresolved external symbol inet_ntoa	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(threadsafe.obj)	kklkl
Error	8	error LNK2001: unresolved external symbol getservbyname	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(threadsafe.obj)	kklkl
Error	9	error LNK2001: unresolved external symbol WSAStartup	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	10	error LNK2001: unresolved external symbol WSACleanup	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	11	error LNK2001: unresolved external symbol WSAGetLastError	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	12	error LNK2001: unresolved external symbol closesocket	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	13	error LNK2001: unresolved external symbol select	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	14	error LNK2001: unresolved external symbol recv	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	15	error LNK2001: unresolved external symbol send	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	16	error LNK2001: unresolved external symbol sendto	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	17	error LNK2001: unresolved external symbol ioctlsocket	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	18	error LNK2001: unresolved external symbol socket	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	19	error LNK2001: unresolved external symbol htons	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	20	error LNK2001: unresolved external symbol getsockopt	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	21	error LNK2001: unresolved external symbol connect	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	22	error LNK2001: unresolved external symbol setsockopt	C:\Users\harry.MISSIRIAN\Desktop\kklkl\kklkl\libTDS.lib(net.obj)	kklkl
Error	23	error LNK1120: 20 unresolved externals	C:\Users\harry.MISSIRIAN\Desktop\kklkl\x64\Release\kklkl.exe	1	1	kklkl
	24	IntelliSense: unrecognized token	c:\freetds-0.82\include\tds_sysdep_public.h	81	1	
	25	IntelliSense: unrecognized token	c:\freetds-0.82\include\tds_sysdep_public.h	81	14	

- Adding WS2_32.lib and WSock32.lib to the project gets rid of the unresolved symbols, but the IntelliSense error remains (I don't think that matters anyway).
- So now, my VC++ app seems to work.

I have to now compile with the /GS- flag to remove the dependency on the all the buffer overrun checks Visual Studio injects, to see if it will work with Qt.

Thanks again,
Harry



> Thanks,
> 
> Paul
> 
> The FreeTDS Project is  a user community supported Freeware Software Project
> 
> From: [email protected] [mailto:[email protected]] On Behalf Of Harry Sfougaris
> Sent: Saturday, May 08, 2010 12:04 PM
> To: FreeTDS Development Group
> Subject: Re: [freetds] 0.83.dev.20100507 and Visual Studio 2010
> 
> 
> I'm talking about the current build if freeTDS.
> 
> 
> 
> Harry
> 
> 
> 
> On 08 Μαϊ 2010, at 6:52 μ.μ., Paul Thurston wrote:
> 
> 
> 
>> FYI: I'm running Windows 7 Professional 64 bit (CurrentBuildNumber = 7600) and Visual Studio 2010 (version 10.0.30319.1 RTMRel)
> 
>> 
> 
>> 
> 
>> From: [email protected] [mailto:[email protected]] On Behalf Of Harry Sfougaris
> 
>> Sent: Saturday, May 08, 2010 4:21 AM
> 
>> To: FreeTDS Development Group
> 
>> Subject: [freetds] 0.83.dev.20100507 and Visual Studio 2010
> 
>> 
> 
>> 
> 
>> The supplier Visual Studio solution file still doesn't compile.
> 
>> 
> 
>> When trying to build, I get the following errors:
> 
>> 
> 
>> Error 11    error C2011: 'pollfd' : 'struct' type redefinition    C:\freetds-0.83.dev.20100507\include\fakepoll.h      50    1     TDS
> 
>> 
> 
>> Error 22    error C2011: 'pollfd' : 'struct' type redefinition    C:\freetds-0.83.dev.20100507\include\fakepoll.h      50    1     TDS
> 
>> 
> 
>> Error 35    error C2011: 'pollfd' : 'struct' type redefinition    C:\freetds-0.83.dev.20100507\include\fakepoll.h      50    1     TDS
> 
>> 
> 
>> Error 46    error C2011: 'pollfd' : 'struct' type redefinition    C:\freetds-0.83.dev.20100507\include\fakepoll.h      50    1     TDS
> 
>> 
> 
>> Error 72    error C2011: 'pollfd' : 'struct' type redefinition    C:\freetds-0.83.dev.20100507\include\fakepoll.h      50    1     TDS
> 
>> 
> 
>> Error 73    error C1189: #error :  One should be defined    C:\freetds-0.83.dev.20100507\src\tds\net.c     243   1     TDS
> 
>> 
> 
>> Error 84    error C2011: 'pollfd' : 'struct' type redefinition    C:\freetds-0.83.dev.20100507\include\fakepoll.h      50    1     TDS
> 
>> 
> 
>> Error 95    error C2011: 'pollfd' : 'struct' type redefinition    C:\freetds-0.83.dev.20100507\include\fakepoll.h      50    1     TDS
> 
>> 
> 
>> Error 109   error C2011: 'pollfd' : 'struct' type redefinition    C:\freetds-0.83.dev.20100507\include\fakepoll.h      50    1     TDS
> 
>> 
> 
>> Error 120   error C2011: 'pollfd' : 'struct' type redefinition    C:\freetds-0.83.dev.20100507\include\fakepoll.h      50    1     TDS
> 
>> 
> 
>> Error 131   error C2011: 'pollfd' : 'struct' type redefinition    C:\freetds-0.83.dev.20100507\include\fakepoll.h      50    1     TDS
> 
>> 
> 
>> Error 142   error C2011: 'pollfd' : 'struct' type redefinition    C:\freetds-0.83.dev.20100507\include\fakepoll.h      50    1     TDS
> 
>> 
> 
>>     147   IntelliSense: argument of type "const void *" is incompatible with parameter of type "const char *"     c:\freetds-0.83.dev.20100507\src\tds\net.c      233   47    TDS
> 
>> 
> 
>>     148   IntelliSense: #error directive: One should be defined c:\freetds-0.83.dev.20100507\src\tds\net.c     243   2     TDS
> 
>> 
> 
>>     149   IntelliSense: return value type does not match the function type  c:\freetds-0.83.dev.20100507\src\tds\net.c     324   9     TDS
> 
>> 
> 
>> 
> 
>> 
> 
>> I am trying to compile under Windows 7 64-bit.
> 
>> 
> 
>> If I add HAVE_POLL to my defines (i don't know if that's correct), the redefinition errors go away, but the others remain, ie.
> 
>> 
> 
>> 
> 
>> 
> 
>> Error 73    error C1189: #error :  One should be defined    C:\freetds-0.83.dev.20100507\src\tds\net.c     243   1     TDS
> 
>> 
> 
>>     147   IntelliSense: argument of type "const void *" is incompatible with parameter of type "const char *"     c:\freetds-0.83.dev.20100507\src\tds\net.c      233   47    TDS
> 
>> 
> 
>>     148   IntelliSense: #error directive: One should be defined c:\freetds-0.83.dev.20100507\src\tds\net.c     243   2     TDS
> 
>> 
> 
>>     149   IntelliSense: return value type does not match the function type  c:\freetds-0.83.dev.20100507\src\tds\net.c     324   9     TDS
> 
>> 
> 
>> 
> 
>> 
> 
>> The "one should be defined" error, I don't know how to handle. The code is the following, and I don't know what should be defined for my platform.
> 
>> 
> 
>> #if defined(USE_NODELAY) || defined(USE_MSGMORE)
> 
>> 
> 
>>     setsockopt(tds->s, SOL_TCP, TCP_NODELAY, (const void *) &len, sizeof(len)); #elif defined(USE_CORK)
> 
>> 
> 
>>     if (setsockopt(tds->s, SOL_TCP, TCP_CORK, (const void *) &len, sizeof(len)) < 0)
> 
>> 
> 
>>           setsockopt(tds->s, SOL_TCP, TCP_NODELAY, (const void *) &len, sizeof(len)); #else #error One should be defined #endif
> 
>> 
> 
>> 
> 
>> 
> 
>> 
> 
>> 
> 
>> 
> 
>> 
> 
>> 
> 
>> 
> 
>> Thanks,
> 
>> 
> 
>> 
> 
>> 
> 
>> Harry Sfougaris
> 
>> 
> 
>> 
> 
>> 
> 
>> 
> 
>> 
> 
>> 
> 
>> 
> 
>> 
> 
>> 
> 
>> _______________________________________________
> 
>> 
> 
>> FreeTDS mailing list
> 
>> 
> 
>> [email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>
> 
>> 
> 
>> http://lists.ibiblio.org/mailman/listinfo/freetds
> 
>> _______________________________________________
> 
>> FreeTDS mailing list
> 
>> [email protected]<mailto:[email protected]>
> 
>> http://lists.ibiblio.org/mailman/listinfo/freetds
> 
> 
> 
> Harry Sfougaris
> 
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> 
> FreeTDS mailing list
> 
> [email protected]<mailto:[email protected]>
> 
> http://lists.ibiblio.org/mailman/listinfo/freetds
> _______________________________________________
> FreeTDS mailing list
> [email protected]
> http://lists.ibiblio.org/mailman/listinfo/freetds

Harry Sfougaris




_______________________________________________
FreeTDS mailing list
[email protected]
http://lists.ibiblio.org/mailman/listinfo/freetds
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.