使用C ++与libpq链接​​错误

时间:2011-03-17 04:03:16

标签: c++ postgresql netbeans linker libpq

我正在尝试使用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库/其他类型的修复?

1 个答案:

答案 0 :(得分:2)

Someone else与libpq有类似的问题。

从该答案后面的讨论中,这里是download the source code的链接,因此您可以重建它以满足您的需求。有不同的版本,所以请确保下载所需的版本。

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