By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
425,855 Members | 865 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 425,855 IT Pros & Developers. It's quick & easy.

[Linker Error] Unresolved external

P: n/a
Hi all,

As a novice I installed PostgreSQL 7.2.1 on Win32 and works,
Borland C++Builder Enterprise Suite 5.0 (build 12.34) what works too.

I decided to combine these two programs and develop a simple GUI app
to display datas queried from PostgreSQL. I did make the following
changes in the project's settings:

Project->Properties->Directories->Include path += C:\Program
Files\PostgreSQL\7\include
Project->Properties->Directories->Librariy path += C:\Program
Files\PostgreSQL\7\lib

(I aded these lines to the project paths).

Within a brand new BCB project I typed in the simpliest code:
#include <libpq-fe.h>
char *pghost, *pgport, *pgoptions, *pgtty;
char *dbName;
int nFields, i, j;
PGconn *conn;
PGresult *res;

pghost = NULL; /* host name of the backend server */
pgport = NULL; /* port of the backend server */
pgoptions = NULL; /* special options to start up the backend
* server */
pgtty = NULL; /* debugging tty for the backend server */
dbName = "template1";

/* make a connection to the database */
conn = PQsetdb(pghost, pgport, pgoptions, pgtty, dbName);

res = PQexec(conn, "BEGIN");
PQclear(res);

res = PQexec(conn, "DECLARE mycursor CURSOR FOR SELECT * FROM
pg_database");
PQclear(res);
res = PQexec(conn, "FETCH ALL in mycursor");
nFields = PQnfields(res);
for (i = 0; i < nFields; i++)
printf("%-15s", PQfname(res, i));
printf("\n\n");

/* next, print out the rows */
for (i = 0; i < PQntuples(res); i++)
{
for (j = 0; j < nFields; j++)
printf("%-15s", PQgetvalue(res, i, j));
printf("\n");
}
PQclear(res);

res = PQexec(conn, "CLOSE mycursor");
PQclear(res);

/* commit the transaction */
res = PQexec(conn, "COMMIT");
PQclear(res);

/* close the connection to the database and cleanup */
PQfinish(conn);

When I run the app I got these errors:

[Linker Error] Unresolved external '_PQconnectdb'
referenced from C:\PROGRAM
FILES\POSTGRESQL\7\CLIENT\BCB_01\MAIN.OBJ
[Linker Error] Unresolved external '_PQnfields'
referenced from C:\PROGRAM
FILES\POSTGRESQL\7\CLIENT\BCB_01\MAIN.OBJ
[Linker Error] Unresolved external '_PQexec'
referenced from C:\PROGRAM
FILES\POSTGRESQL\7\CLIENT\BCB_01\MAIN.OBJ
[Linker Error] Unresolved external '_PQclear'
referenced from C:\PROGRAM
FILES\POSTGRESQL\7\CLIENT\BCB_01\MAIN.OBJ
[Linker Error] Unresolved external '_PQfinish'
referenced from C:\PROGRAM
FILES\POSTGRESQL\7\CLIENT\BCB_01\MAIN.OBJ

What is wrong? I supose that I miss something to configure.

Laszlo Graf
Nov 14 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Laszlo <gr*********@axis.hu> wrote:
As a novice I installed PostgreSQL 7.2.1 on Win32 and works,
Borland C++Builder Enterprise Suite 5.0 (build 12.34) what works too. I decided to combine these two programs and develop a simple GUI app
to display datas queried from PostgreSQL. I did make the following
changes in the project's settings: Project->Properties->Directories->Include path += C:\Program
Files\PostgreSQL\7\include
Project->Properties->Directories->Librariy path += C:\Program
<OT>
Shouldn't that be "Library" instead of "Librariy"?
</OT>
Files\PostgreSQL\7\lib (I aded these lines to the project paths). Within a brand new BCB project I typed in the simpliest code: #include <libpq-fe.h>
char *pghost, *pgport, *pgoptions, *pgtty;
char *dbName;
int nFields, i, j;
PGconn *conn;
PGresult *res; pghost = NULL; /* host name of the backend server */
pgport = NULL; /* port of the backend server */
pgoptions = NULL; /* special options to start up the backend
* server */
pgtty = NULL; /* debugging tty for the backend server */
dbName = "template1"; /* make a connection to the database */
conn = PQsetdb(pghost, pgport, pgoptions, pgtty, dbName); res = PQexec(conn, "BEGIN");
PQclear(res); res = PQexec(conn, "DECLARE mycursor CURSOR FOR SELECT * FROM
pg_database");
PQclear(res);
res = PQexec(conn, "FETCH ALL in mycursor");
nFields = PQnfields(res);
for (i = 0; i < nFields; i++)
printf("%-15s", PQfname(res, i));
printf("\n\n"); /* next, print out the rows */
for (i = 0; i < PQntuples(res); i++)
{
for (j = 0; j < nFields; j++)
printf("%-15s", PQgetvalue(res, i, j));
printf("\n");
}
PQclear(res); res = PQexec(conn, "CLOSE mycursor");
PQclear(res); /* commit the transaction */
res = PQexec(conn, "COMMIT");
PQclear(res); /* close the connection to the database and cleanup */
PQfinish(conn); When I run the app I got these errors: [Linker Error] Unresolved external '_PQconnectdb'
referenced from C:\PROGRAM
<OT>
PQconnectdb() is never called in your program, but instead
PQsetdb(), so it looks as if you're not posting the error
messages you got when you tried to link the above program.
</OT>
FILES\POSTGRESQL\7\CLIENT\BCB_01\MAIN.OBJ
[Linker Error] Unresolved external '_PQnfields'
referenced from C:\PROGRAM
FILES\POSTGRESQL\7\CLIENT\BCB_01\MAIN.OBJ
[Linker Error] Unresolved external '_PQexec'
referenced from C:\PROGRAM
FILES\POSTGRESQL\7\CLIENT\BCB_01\MAIN.OBJ
[Linker Error] Unresolved external '_PQclear'
referenced from C:\PROGRAM
FILES\POSTGRESQL\7\CLIENT\BCB_01\MAIN.OBJ
[Linker Error] Unresolved external '_PQfinish'
referenced from C:\PROGRAM
FILES\POSTGRESQL\7\CLIENT\BCB_01\MAIN.OBJ What is wrong? I supose that I miss something to configure.


Sorry, but that's not a question about C at all but about a) why the
linker doesn't do what you want it to do and b) how to use your IDE.
And that's both off-topic here. You will get better replies from a
group or forum that deals with your IDE (BCP) and linker.

Regards, Jens
--
\ Jens Thoms Toerring ___ Je***********@physik.fu-berlin.de
\__________________________ http://www.toerring.de
Nov 14 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.