Thread: [psqlODBC 08.02.0401] Compiling fails on VS2005SP1

[psqlODBC 08.02.0401] Compiling fails on VS2005SP1

From
Rainer Bauer
Date:
Hi,

I have checked out the latest source and tried to compile it without success.

1>C:\Program Files\VS8\VC\include\crtdbg.h(628) : warning C4005: '_malloca' :
macro redefinition
1>        C:\Program Files\VS8\VC\include\malloc.h(217) : see previous
definition of '_malloca'

This error is related to the _CRTDBG_MAP_ALLOC definition in these files:
psqlodbc.h, inouealc.c and win_unicode.c. If I add _MEMORY_DEBUG_ to the
preprocessor defines the error goes away.

Could it be that this is because I am using the latest Windows SDK and
VS2005SP1?

Linking fails, because ssleay32.lib is not found. I checked the OpenSSL
installation and the Visual C++ libraries are located in "C:\OpenSSL\lib\VC"
and are named depending on the target (single/multi threaded, release/debug,
etc.). But since ssleay32.lib is defined in the linker input project settings
this cannot work. Shouldn't the lib name be generated dynamically depending on
the target which is build and specified in the source with pragma's?

Rainer

PS: By default the project is set up to create the Unicode driver. Am I right
to assume that in order to build the ANSI version I have to remove
UNICODE_SUPPORT and set ODBCVER to 0x0300?

Re: [psqlODBC 08.02.0401] Compiling fails on VS2005SP1

From
Rainer Bauer
Date:
I wrote:

>Linking fails, because ssleay32.lib is not found. I checked the OpenSSL
>installation and the Visual C++ libraries are located in "C:\OpenSSL\lib\VC"
>and are named depending on the target (single/multi threaded, release/debug,
>etc.). But since ssleay32.lib is defined in the linker input project settings
>this cannot work. Shouldn't the lib name be generated dynamically depending on
>the target which is build and specified in the source with pragma's?

After manually copying and renaming the lib files
(C:\OpenSSL\lib\VC\ssleay32MTd.lib -> ~\psqlodbc\ssleay32.lib and
C:\OpenSSL\lib\VC\libeay32MTd.lib -> ~\psqlodbc\libeay32.lib) I have another
linker error:

LINK : fatal error LNK1104: cannot open file 'pgenlist.lib'

Where do I get that from?

Rainer

Re: [psqlODBC 08.02.0401] Compiling fails on VS2005SP1

From
Hiroshi Inoue
Date:
Rainer Bauer wrote:
> I wrote:
>
>> Linking fails, because ssleay32.lib is not found. I checked the OpenSSL
>> installation and the Visual C++ libraries are located in "C:\OpenSSL\lib\VC"
>> and are named depending on the target (single/multi threaded, release/debug,
>> etc.). But since ssleay32.lib is defined in the linker input project settings
>> this cannot work. Shouldn't the lib name be generated dynamically depending on
>> the target which is build and specified in the source with pragma's?
>
> After manually copying and renaming the lib files
> (C:\OpenSSL\lib\VC\ssleay32MTd.lib -> ~\psqlodbc\ssleay32.lib and
> C:\OpenSSL\lib\VC\libeay32MTd.lib -> ~\psqlodbc\libeay32.lib) I have another
> linker error:
>
> LINK : fatal error LNK1104: cannot open file 'pgenlist.lib'

The pgenlist library is used for MSDTC support and isn't needed
unless _HANDLE_ENLIST_IN_DTC_ is defined. A #pragma in loadlib.c
seems to be the cause. I lready fixed the bug in my local source
  for 8.2.0402.

regards,
Hiroshi Inoue