【问题标题】:error LNK2019 unresolved external symbol dbbind referenced in function函数中引用的错误 LNK2019 未解析的外部符号 dbbind
【发布时间】:2017-11-02 20:02:45
【问题描述】:

我正在尝试使用 Visual Studio Community 2017 为 Windows 64 位编译 tds_fdw,但出现以下错误。

C/C++ 附加包含目录是:

E:\Downloads\FreeTDS-1.00-x86\freetds-1.00\include
C:\Apps\postgres\pgsql-10.0\include\server\port\win32_msvc
C:\Apps\postgres\pgsql-10.0\include\server\port\win32
C:\Apps\postgres\pgsql-10.0\include
C:\Apps\postgres\pgsql-10.0\include\server
E:\Workspace\git\tds_fdw\include
%(AdditionalIncludeDirectories)

链接器输入具有附加依赖项:

C:\Apps\postgres\pgsql-10.0\lib\postgres.lib

我错过了什么?

1>------ Rebuild All started: Project: tds_fdw, Configuration: Release x64 ------
1>deparse.c
1>options.c
1>tds_fdw.c
1>Generating Code...
1>   Creating library E:\Workspace\git\tds_fdw\x64\Release\tds_fdw.lib and object E:\Workspace\git\tds_fdw\x64\Release\tds_fdw.exp
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbbind referenced in function tdsGetRowCountShowPlanAll
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbclose referenced in function estimate_path_cost_size
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbcmd referenced in function tdsExecuteQuery
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbcolname referenced in function tdsGetColumnMetadata
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbcoltype referenced in function tdsGetColumnMetadata
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbconvert referenced in function tdsConvertToCString
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbiscount referenced in function tdsGetRowCountExecute
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbcount referenced in function tdsGetRowCountExecute
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbdata referenced in function tdsIterateForeignScan
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbdatecrack referenced in function tdsDatetimeToDatum
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbdatlen referenced in function tdsIterateForeignScan
1>tds_fdw.obj : error LNK2019: unresolved external symbol dberrhandle referenced in function estimate_path_cost_size
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbexit referenced in function estimate_path_cost_size
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbinit referenced in function estimate_path_cost_size
1>tds_fdw.obj : error LNK2019: unresolved external symbol dblogin referenced in function estimate_path_cost_size
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbloginfree referenced in function estimate_path_cost_size
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbmsghandle referenced in function estimate_path_cost_size
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbnextrow referenced in function tdsGetRowCountExecute
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbnumcols referenced in function tdsGetRowCountShowPlanAll
1>tds_fdw.obj : error LNK2019: unresolved external symbol tdsdbopen referenced in function tdsSetupConnection
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbresults referenced in function tdsExecuteQuery
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbsqlexec referenced in function tdsExecuteQuery
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbuse referenced in function tdsSetupConnection
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbwillconvert referenced in function tdsConvertToCString
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbsetlname referenced in function tdsSetupConnection
1>tds_fdw.obj : error LNK2019: unresolved external symbol dbsetlversion referenced in function tdsSetupConnection
1>E:\Workspace\git\tds_fdw\x64\Release\tds_fdw.dll : fatal error LNK1120: 26 unresolved externals
1>Done building project "tds_fdw.vcxproj" -- FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

更新:来自 FreeTDS 的文件

freetds-1.00\bin
freetds-1.00\etc
freetds-1.00\include
freetds-1.00\lib
freetds-1.00\README.tests
freetds-1.00\sbin
freetds-1.00\var
freetds-1.00\bin\bsqldb.exe
freetds-1.00\bin\bsqlodbc.exe
freetds-1.00\bin\datacopy.exe
freetds-1.00\bin\defncopy.exe
freetds-1.00\bin\freebcp.exe
freetds-1.00\bin\osql
freetds-1.00\bin\sqsh.exe
freetds-1.00\bin\tsql.exe
freetds-1.00\etc\freetds.conf
freetds-1.00\etc\locales.conf
freetds-1.00\etc\pool.conf
freetds-1.00\include\bkpublic.h
freetds-1.00\include\cspublic.h
freetds-1.00\include\cstypes.h
freetds-1.00\include\ctpublic.h
freetds-1.00\include\odbcss.h
freetds-1.00\include\sqldb.h
freetds-1.00\include\sqlfront.h
freetds-1.00\include\sybdb.h
freetds-1.00\include\syberror.h
freetds-1.00\include\sybfront.h
freetds-1.00\include\tds_sysdep_public.h
freetds-1.00\lib\libct.a
freetds-1.00\lib\libct.la
freetds-1.00\lib\libsybdb.a
freetds-1.00\lib\libsybdb.la
freetds-1.00\lib\libtdsodbc.a
freetds-1.00\lib\libtdsodbc.la
freetds-1.00\lib\pkgconfig
freetds-1.00\lib\pkgconfig\freetds.pc
freetds-1.00\sbin\tdspool.exe
freetds-1.00\sbin\tdssrv.exe
freetds-1.00\var\log

【问题讨论】:

标签: c++ postgresql visual-studio linker freetds


【解决方案1】:

您未能链接到 FreeTDS .lib。您还需要确保关联的 .dll 在您的 PATH 中或复制到与您构建的扩展相同的目录中。

【讨论】:

  • 谢谢,克雷格,我正在尝试做类似的事情,但我在 FreeTDS 的 Windows 发行版中看不到任何 .dll.lib 文件 - sourceforge.net/projects/freetdswindows - 有什么想法吗?我将从 FreeTDS 获得的文件列表添加到我上面的问题中。
  • 大概你必须编译 FreeTDS,或者得到一个预编译的二进制发行版
猜你喜欢
  • 1970-01-01
  • 2013-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
相关资源
最近更新 更多