Thread: postgresql and C++/C

postgresql and C++/C

From
"vdm.fbsd@virgilio.it"
Date:
Context:FREEBSD 5.4, postgresql 8.0.3

I'm not a C newbye and I'm
having a go at compiling my first, simple C(++) program:

#include
<libpq-fe.h>
int main()
{
PGconn *psql;
psql = PQconnectdb("hostaddr =
'127.0.0.1' port = '' dbname = 'curve' user = 'vi
return 0;
}

But
when
I compile it the following message pops up:

vicbsd# gcc -I
/usr/local/include prova.cpp -o prova
/var/tmp//cceNJFrs.o(.text+0x25):
In function `main':
: undefined reference to `PQconnectdb'
/var/tmp//cceNJFrs.o(.eh_frame+0x11): undefined reference to
`__gxx_personality_v0'


What's wrong with it?
Ciao
Vittorio




Re: postgresql and C++/C

From
Peter Wiersig
Date:
On Wed, Sep 28, 2005 at 10:11:45AM +0100, vdm.fbsd@virgilio.it wrote:
>
> vicbsd# gcc -I

Don't use gcc to compile C++. Use g++.

Peter

Re: postgresql and C++/C

From
Martijn van Oosterhout
Date:
On Wed, Sep 28, 2005 at 10:11:45AM +0100, vdm.fbsd@virgilio.it wrote:
> Context:FREEBSD 5.4, postgresql 8.0.3
>
> I'm not a C newbye and I'm
> having a go at compiling my first, simple C(++) program:

1. If it's a C program, you should name the file .c otherwise gcc is
likely to consider it a c++ program.

2. If it's a c++ program, use g++ to compile and link to make sure you
get all the right libraries and paths.

3. Use -lpq to link to the postgresql client library. You may need a -L
so it looks in the right place.

Hope this helps,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.

Attachment

Re: postgresql and C++/C

From
"vdm.fbsd@virgilio.it"
Date:
I've just modified the extension with .c instead of .cpp and run:
vicbsd# gcc -I /usr/local/include/ prova.c -o prova -Lpq
/var/tmp//cc86RZZl.o(.text+0x25): In function `main':
: undefined
reference to `PQconnectdb'

Nothing seems to be changed!

Thanks
anyway.
Vittorio
----Messaggio originale----
Da: kleptog@svana.org
Data: 28-set-2005 11.44
A: "vdm.fbsd@virgilio.it"<vdm.fbsd@virgilio.it>
Cc: <pgsql-general@postgresql.org>
Ogg: Re: [GENERAL] postgresql and
C++/C

On Wed, Sep 28, 2005 at 10:11:45AM +0100, vdm.fbsd@virgilio.it
wrote:
> Context:FREEBSD 5.4, postgresql 8.0.3
>
> I'm not a C newbye
and I'm
> having a go at compiling my first, simple C(++) program:

1.
If it's a C program, you should name the file .c otherwise gcc is
likely to consider it a c++ program.

2. If it's a c++ program, use g++
to compile and link to make sure you
get all the right libraries and
paths.

3. Use -lpq to link to the postgresql client library. You may
need a -L
so it looks in the right place.

Hope this helps,
--
Martijn
van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
>
Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for
someone
> else to do the other 95% so you can sue them.




Re: postgresql and C++/C

From
Martijn van Oosterhout
Date:
On Wed, Sep 28, 2005 at 10:59:04AM +0100, vdm.fbsd@virgilio.it wrote:
> I've just modified the extension with .c instead of .cpp and run:
> vicbsd# gcc -I /usr/local/include/ prova.c -o prova -Lpq
> /var/tmp//cc86RZZl.o(.text+0x25): In function `main':
> : undefined
> reference to `PQconnectdb'
>
> Nothing seems to be changed!

Pay attention to the case, it's -lpq, not -Lpq. -L is for *search paths*.
Please read the documentation.
http://www.postgresql.org/docs/7.4/interactive/libpq-build.html
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.

Attachment