【问题标题】:Link error with libpq using C++使用 C++ 与 libpq 链接错误
【发布时间】:2011-03-17 04:03:16
【问题描述】:

我正在尝试使用 libpq 连接到我的 PostgreSQL 数据库,并打算在我得到这个工作后调用预定义的函数。现在我只输入了 conninfo 字符串,然后测试连接。在最终弄清楚如何在我的项目中包含不同的代码目录和库路径(Windows 7 上的 Netbeans 6.9.1,MinGW 编译器)之后,我发现了这个错误:

g++.exe -c -I/C/Program\ Files/PostgreSQL/9.0/include -MMD -MP -MF build/Debug/MinGW-Windows/main.od -o build/Debug/MinGW-Windows/main .o main.cpp

mkdir -p dist/Debug/MinGW-Windows

g++.exe -o dist/Debug/MinGW-Windows/toolboxconnect build/Debug/MinGW-Windows/main.o -L/C/Program\ Files/PostgreSQL/9.0/lib -lpq

c:/Program Files/PostgreSQL/9.0/lib/libpq.dll:文件无法识别:文件格式无法识别
collect2: ld 返回 1 个退出状态

我已经搜索了很多主题来寻找无法识别的原因,但是人们向其他人建议这是因为他们运行的是 64 位,并且需要重建 dll。我不认为我的 PostgreSQL 安装附带了 makefile 来重新编译这些文件,并认为它们可以很好地使用。我的链接器是否有任何其他原因不喜欢我的 libpq 库/某种其他类型的修复?

【问题讨论】:

    标签: c++ postgresql netbeans linker libpq


    【解决方案1】:

    Someone else 刚刚遇到了与 libpq 类似的问题。

    在该答案之后的讨论中,这里有一个指向 download the source code 的链接,因此您可以重建它以满足您的需求。有不同的版本可供选择,因此请确保下载所需的版本。

    我真的很讨厌只用“你的依赖不起作用?下载源代码并自己重新编译它!”这样的依赖地狱。 -- 但遗憾的是,这似乎是目前 postgres 的唯一选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 2012-10-23
      • 2011-07-26
      相关资源
      最近更新 更多