| From: | Andrew Francis <locust(at)familyhealth(dot)com(dot)au> |
|---|---|
| To: | pgsql-hackers-win32(at)postgresql(dot)org |
| Subject: | libpq build problem with <io.h> on MS VC++ 7.0 |
| Date: | 2004-08-11 07:09:27 |
| Message-ID: | 4119C627.5030402@familyhealth.com.au |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers-win32 pgsql-patches |
Hi all
When building libpq using Visual Studio .NET 2002 (ie Visual C++ 7.0), I
encounter this error:
fe-lobj.c
C:\Program Files\Microsoft Visual Studio .NET\Vc7\include\io.h(205) : error
C2375: 'pgrename' : redefinition; different linkage
c:\libs\postgresql\src\include\port.h(148) : see declaration of
'pgrename'
C:\Program Files\Microsoft Visual Studio .NET\Vc7\include\io.h(275) : error
C2375: 'pgunlink' : redefinition; different linkage
c:\libs\postgresql\src\include\port.h(149) : see declaration of
'pgunlink'
As rename/unlink are #define'd to pgrename/pgunlink prior to <io.h>'s inclusion.
Simply reordering the headers fixes the problem (see attachment).
I believe this may be a problem on my compiler, but not necessarily others,
due to an additional compiler directive on the definition in io.h:
#define _CRTIMP __declspec(dllimport)
...
_CRTIMP int __cdecl unlink(const char *);
port.h's definition of pgrename() is obviously lacking a __declspec(dllimport).
Regards,
--
Andrew Francis
Lead Developer - Software
Family Health Network
| Attachment | Content-Type | Size |
|---|---|---|
| fe-lobj-fix.diff | text/plain | 1.1 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dave Page | 2004-08-11 07:28:41 | Re: pg_autovacuum Win32 Service Code |
| Previous Message | Christian Traber | 2004-08-11 05:53:20 | Re: error moving table to tablespace (8.0 beta win32 ) |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Martin Münstermann | 2004-08-11 07:56:12 | Re: 8.0.0beta1: -lpthread missing |
| Previous Message | Serguei Mokhov | 2004-08-11 04:59:35 | Translation updates: pg_ctl-ru.po.gz |