通过c++ -Interface访问PostgreSQL(链接错误)

Access PostgreSQL via C++-Interface (Linker error)

本文关键字:链接 错误 PostgreSQL c++ -Interface 访问 通过      更新时间:2023-10-16

我使用visual studio 2012 Ultimate和PostgreSQL 9.2 64位。我设置了一个全新的项目,设置如下:

附加包含文件夹:"C:Program FilesPostgreSQL9.2include"

附加库文件夹:"C:Program FilesPostgreSQL9.2lib"

我链接到"libpq.lib"。

我的问题是这样的:

#include <iostream>
using namespace std;
#include <libpq-fe.h>
int main() {
    PGconn *psql = PQconnectdb("hostaddr = '127.0.0.1' port = '' dbname = 'fwaggle' user = 'fwaggle' password = 'password' connect_timeout = '10'");
    /* init connection */
    if (!psql) {
    }
    std::cin.get();
    return 0;
}

结果:"error LNK2019: Verweis auf night aufgelöstes externes Symbol "_PQconnectdb" in function "_main"。我无法摆脱这个链接错误,我做错了什么?

看看这个链接:http://www.askyb.com/cpp/c-postgresql-example/

它建议你必须设置额外的依赖以及额外的包括和Lib文件夹。

如果失败,请仔细检查您试图调用的方法的名称,并仔细检查Additional Includes和Lib设置中的路径;从资源管理器中复制并粘贴它们以确保。

您可能还需要使用dependencies .exe来检查DLL是否实际上正在导出您所需要的方法。

我知道是怎么回事了:

如所述,我安装了PostgreSQL 64位,但我试图编译和链接一个32位的项目反对64位libpg从PostgreSQL。从WIN32切换到x64后,链接成功。