Search Postgresql Archives

Re: Building tds_fdw Extension for Windows 64bit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/2/2017 1:05 AM, Laurenz Albe wrote:
Igal @ Lucee.org wrote:
After reading Craig's excellent blog post at https://blog.2ndquadrant.com/compiling-postgresql-extensions-visual-studio-windows/ I decided to try and build a real extension - tds_fdw.
I've set it up in Visual Studio Community 2017, but am getting the following errors:
Error    C2375    'tds_fdw_handler': redefinition; different linkage    tds_fdw    E:\Workspace\git\tds_fdw\src\tds_fdw.c    118
Error    C2375    'tds_fdw_validator': redefinition; different linkage    tds_fdw    E:\Workspace\git\tds_fdw\src\tds_fdw.c    156
Full output:
1>------ Rebuild All started: Project: tds_fdw, Configuration: Release x64 ------
1>deparse.c
1>options.c
1>tds_fdw.c
1>src\tds_fdw.c(118): error C2375: 'tds_fdw_handler': redefinition; different linkage
1>E:\Workspace\git\tds_fdw\include\tds_fdw.h(130): note: see declaration of 'tds_fdw_handler'
1>src\tds_fdw.c(156): error C2375: 'tds_fdw_validator': redefinition; different linkage
1>E:\Workspace\git\tds_fdw\include\tds_fdw.h(131): note: see declaration of 'tds_fdw_validator'
1>Generating Code...
1>Done building project "tds_fdw.vcxproj" -- FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
I'm not sure if it's related, but the FreeTDS version that I found for Windows is marked as 32bit and I am trying to build for 64bit.
I believe that extensions like tds_fdw and pgloader will help users on TDS databases to migrate to Postgres and will improve adoption of the project.  I will be more than happy to publish my binaries of the extension if I ever get that far.
Can anyone help?
Based on my experience with oracle_fdw, I would change the function declaration
in tds_fdw.h to

    extern PGDLLEXPORT Datum tds_fdw_handler(PG_FUNCTION_ARGS);

Thanks, Laurenz, but I am still getting the same error after prefixing the PGDLLEXPORT statements with `extern` in the `.c` files.  The `.h` files already had `extern` for those declarations.

Any other ideas?

Thank you,


Igal



--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux