Received: from priv-edtnes12-hme0.telusplanet.net (edtnes12.telus.net [199.185.220.112]) by hub.org (8.9.3/8.9.3) with ESMTP id LAA66723 for ; Fri, 21 Jan 2000 11:20:21 -0500 (EST) (envelope-from mfre@telusplanet.net) Received: from Cartman ([161.184.157.154]) by priv-edtnes12-hme0.telusplanet.net (InterMail vM.4.01.02.11 201-229-116-111) with SMTP id <20000121162033.LRYE28994.priv-edtnes12-hme0.telusplanet.net@Cartman> for ; Fri, 21 Jan 2000 09:20:33 -0700 From: Mike Reply-To: mfre@telusplanet.net To: pgsql-interfaces@postgreSQL.org Subject: Linking Errors Date: Fri, 21 Jan 2000 08:49:02 -0700 X-Mailer: KMail [version 1.0.21] Content-Type: text/plain MIME-Version: 1.0 Message-Id: <00012109160200.02113@Cartman> Content-Transfer-Encoding: 8bit Hello I am having problems linking to the libpq++ libraries. I tried compiling the the program below that I found in the archive just like it said c++ test3.cpp -o test3 -lpq -lpq++ But I get messages like the following: /usr/lib/qt/include/qarray.h(.gnu.linkonce.t__tf10PgDatabase+0xd): undefined reference to 'PgConnection type_info function Before I had to specify the location of the libpq++.h file until I used the I switch or else it would say the file was not found. c++ test3.cpp -o test3 -I/usr/lib/pgsql/include -lpq -lpq++ So I have a couple of questions 1. How do I fix the linking error? 2. When I set the -lpq and -lpq++ I know it is suppose to be including those libraries but do I need to tell the system where those libraries are? How does it know? Please HELP!! :-) Thanks, Mike mfre@telusplanet.net ************************************************************************************************************************* /* test3.h joris esch 3.10.1998 */ #include //#include "/usr/lib/pgsql/include/libpq++.h" #include //typedef int Error; /* test3.cpp joris esch 3.10.1998 */ // compile with: // c++ test3.cpp -o test3 -lpq -lpq++ #include "test3.h" void main() { bool verbose = true; char* dbname= "template1"; /* make a connection to the database */ if (verbose) { cout << "Trying to connect to db " << dbname << '\n';; // << " on host " << pghost; } ; // PgDatabase inherits from PgConnection PgDatabase *conn=new PgDatabase(dbname); // give error messages if conn is not ok if (conn->Status()!=0){ cerr << "Connection status: " << conn->Status() <<'\n'; cerr << "Connection failed." << '\n'; cerr << "Database name: " << conn->DBName() << '\n'; cerr << conn->ErrorMessage() << '\n'; //end execution here... or use exception handling...cfr. ch8 exit(1); //Stroustrup page 116 0== okidoki, 1!=okidoki //throw "Connection failed"; }; if (verbose) {cout << "Connection succeeded.\n";}; cout << "You are currently connected to db: " << conn->DBName() << '\n'; //cout << "Let's do a query"; //see if i can do query... if (conn->ExecTuplesOk("DECLARE mycursor BINARY CURSOR FOR select * from pg_database")){// 1 means Ok int no_t=conn->Tuples(); int no_f=conn->Fields(); if (verbose) { cout << "The number of tuples in the query: " << conn->Tuples() << '\n'; cout << "The number of fields in the query: " << conn->Fields() << '\n'; } cout << "The query results: \n"; for(int i=0;i < no_t; i++){ for(int j=0;j < no_f; j++){ cout << conn->GetValue(i,j) << '\t'; //cout << conn->GetValue(i,j) << '\n'; } cout << '\n'; } } else{ cout << "Execution of query failed\n";//conn } //conn->Exec("DECLARE mycursor BINARY CURSOR FOR select * from test"); //return 0; }