使用libpq-fe.h连接到C中的Postgres数据库时出错

嘿我正在尝试使用postgres连接到数据库

#include  #include  #include  int main(int argc, char* argv[]) { //Start connection PGconn* connection = PQconnectdb("host=webcourse.cs.nuim.ie dbname=cs621 sslmode=require user=ggales password=1234"); if (PQstatus(connection) ==CONNECTION_BAD) { printf("Connection error\n"); PQfinish(connection); return -1; //Execution of the program will stop here } printf("Connection ok\n"); //End connection PQfinish(connection); printf("Disconnected\n"); return 0; } 

我一直得到这个编译错误:

 main.c: In function 'main': main.c:9:35: warning: missing terminating " character [enabled by default] main.c:9:2: error: missing terminating " character main.c:10:2: error: 'dbname' undeclared (first use in this function) main.c:10:2: note: each undeclared identifier is reported only once for each function it appears in main.c:10:9: error: 'cs621' undeclared (first use in this function) main.c:10:15: error: expected ')' before 'sslmode' main.c:10:56: warning: missing terminating " character [enabled by default] main.c:10:15: error: missing terminating " character main.c:16:1: error: expected ',' or ';' before '}' token main.c:16:1: error: expected declaration or statement at end of input 

有人能看出为什么会这样吗?

谢谢。

你的代码编译得很好。 如果我将它粘贴到xc我可以编译它没有问题:

 gcc -I /usr/pgsql-9.2/include -L /usr/pgsql-9.2/lib xc -lpq 

(路径可能因您的系统而异)。

您可以在32位程序中使用64位libpq.lib。 您可以使用32位libpq.lib或将平台更改为x64。

32位客户端+ 64位服务器无法正常工作。