2013-04-04 51 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