我想(在Windows上)用C编写一个与postgres数据库连接的程序。
首先,我在3行中

#include <libpq-fe.h>


但后来我得到一个错误

... main.c|3|fatal error: libpq-fe.h: No such file or directory


所以我改变了3行

#include "C:/Program Files/PostgreSQL/9.6/include/libpq-fe.h"


但我仍然得到一个错误

ld.exe||cannot find -lpq-fe.h|


有任何想法吗?

#include <stdio.h>
#include <stdlib.h>
#include "C:/Program Files/PostgreSQL/9.6/include/libpq-fe.h"
#include <string.h>


int main()
{
  PGresult *result;
  PGconn   *conn;

  conn = PQconnectdb("host=localhost port=5432 dbname=mydb
          user=postgres password=mypassword");

  if(PQstatus(conn) == CONNECTION_OK) {
    printf("connection made\n");
  }
  else
    printf("connection failed: %s\n", PQerrorMessage(conn));

  PQfinish(conn);
  return 0;
}

最佳答案

您无需将路径添加到include指令,即坚持使用

#include <libpq-fe.h>


您将文件的路径指定为编译器的包含目录。

如何执行取决于您使用的编译器。

使用Microsoft Visual C,您可以使用以下命令调用cl

cl /I C:/Program Files/PostgreSQL/9.6/include ...


使用MinGW和gcc,您可以编写

gcc -L C:/Program Files/PostgreSQL/9.6/include ...

关于c - C与PostgreSQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42868156/

10-12 20:22