2013-04-04 53 views
0

製作標題以連接到PostgreSQL數據庫我將libpq函數封裝到我自己的函數中,但在其中一個函數中,它應該返回一個PGconn類型的指針我得到一個錯誤類型...未定義的引用...返回指針的函數

ConexionPostgres.c:32:6: aviso: la asignación crea un puntero desde un entero sin una conversión [activado por defecto] /tmp/ccCeaewL.o: In function主要的': ConexionPostgres.c:.text+0x86: undefined reference to setBD '

我認爲這是因爲原型的,所以我改變了原直接前主,但沒有把定義。 ..可以 有人告訴發生了什麼事?

我正在查看Postgres libpq文檔和libpq-fe.h直接查看原型,所以我不會錯過任何東西,但我感到困惑。這裏是我的代碼:

PGconn *setDB(char *conninfo) 
{ 
    PGconn *db; 
    db = PQconnectdb(conninfo); 

    if(!db) 
      printf("Error en conexion a la BD"); 

    if(PQstatus(db) != CONNECTION_OK) 
    { 
     printf("%s\n", PQerrorMessage(db)); 
    } 
    else 
    { 
     return db; 
    } 

} 

int main() 
{ 

     const char *conninfo = "dbname='database' host='somehost' user='me' password='somepass'"; 
    //char *query = "INSERT INTO productos VALUES ('1','5','235')"; 

    PGconn *con; 
    con = setBD(conninfo); /* --> Here's apparently the problem */ 

    PQfinish(con); 
    exit(0); 

} 
+0

你鏈接到'postgre'庫嗎? – 2013-04-04 08:57:51

+0

是的,並沒有那條線正常工作... – 2013-04-04 15:25:50

回答

3

Typo。您可以調用功能setBD(),而定義的功能稱爲setDB()

+0

哦,人!最近編程不適合我的眼睛! ;我檢查並重新檢查了我的代碼,但無法找到該錯誤,謝謝! – 2013-04-04 15:29:02