Linking Errors

From: Mike <mfre(at)telusplanet(dot)net>
To: pgsql-interfaces(at)postgreSQL(dot)org
Subject: Linking Errors
Date: 2000-01-21 15:49:02
Message-ID: 00012109160200.02113@Cartman
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

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(at)telusplanet(dot)net

*************************************************************************************************************************
/* test3.h
joris esch 3.10.1998
*/

#include <libpq++.h>
//#include "/usr/lib/pgsql/include/libpq++.h"
#include <iostream>

//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;

}

Browse pgsql-interfaces by date

  From Date Subject
Next Message Richard 2000-01-21 16:35:26 Re: [INTERFACES] Linking problems
Previous Message Jose Soares 2000-01-21 08:58:43 Re: ODBC drive strange behavior