2017-03-17 44 views
0

我想在C編寫一個與postgres數據庫連接的程序(在windows上)。 首先,我曾在3線C with postgresql

#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; 
} 
+1

https://www.postgresql.org/docs/current/static /libpq-build.html –

回答

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 ... 
+0

在這種情況下,我使用代碼塊,我添加到編譯器選項-L「C:/ Program Files/PostgreSQL/9.6/include」 但我仍然收到錯誤 ld.exe ||找不到C:\ Program Files \ PostgreSQL \ 9。 6 \ include:權限被拒絕| – FiliusBonacci

+0

你有答案:*權限被拒絕*。您必須更改文件和目錄權限,以便運行編譯器的用戶有權讀取頭文件。 –