Thread: ecpg help

ecpg help

From
"Gary Knopp"
Date:
Hello,I'm running Postgresql  7.2.2 on RedHat Linux 7.1.  I am trying to use
Postgres embedded sql       preprocessor (ECPG).  However, I get a loading shared library
problem when I attempt toexecute a program.  I included a simple example below...

Thanks

Error:
============
try: error while loading shared libraries: libecpg.so.3: cannot load shared
object file: No such file or directory

echo $LD_LIBRARY_PATH
======================
:/home/smith/lib:/usr/local/pgsql/lib:/usr/lib/qt/lib

ls -l /usr/localpgsql/lib
-rw-r--r--    1 root     root        46302 Aug 30 11:05 libecpg.a
lrwxrwxrwx    1 root     root           16 Aug 30 11:05 libecpg.so ->
libecpg.so.3.3.0
lrwxrwxrwx    1 root     root           16 Aug 30 11:05 libecpg.so.3 ->
libecpg.so.3.3.0
-rwxr-xr-x    1 root     root        40220 Aug 30 11:05 libecpg.so.3.3.0
-rw-r--r--    1 root     root         6664 Aug 30 11:05 libpgeasy.a
lrwxrwxrwx    1 root     root           16 Aug 30 11:05 libpgeasy.so ->
libpgeasy.so.2.2
lrwxrwxrwx    1 root     root           16 Aug 30 11:05 libpgeasy.so.2 ->
libpgeasy.so.2.2
-rwxr-xr-x    1 root     root        10809 Aug 30 11:05 libpgeasy.so.2.2
-rw-r--r--    1 root     root        30574 Aug 30 11:05 libpgtcl.a
lrwxrwxrwx    1 root     root           15 Aug 30 11:05 libpgtcl.so ->
libpgtcl.so.2.2
lrwxrwxrwx    1 root     root           15 Aug 30 11:05 libpgtcl.so.2 ->
libpgtcl.so.2.2
-rwxr-xr-x    1 root     root        35241 Aug 30 11:05 libpgtcl.so.2.2
-rw-r--r--    1 root     root        82598 Aug 30 11:05 libpq.a
-rw-r--r--    1 root     root        68982 Aug 30 11:05 libpq++.a
lrwxrwxrwx    1 root     root           12 Aug 30 11:05 libpq.so ->
libpq.so.2.2
lrwxrwxrwx    1 root     root           14 Aug 30 11:05 libpq++.so ->
libpq++.so.4.0
lrwxrwxrwx    1 root     root           12 Aug 30 11:05 libpq.so.2 ->
libpq.so.2.2
-rwxr-xr-x    1 root     root        74685 Aug 30 11:05 libpq.so.2.2
lrwxrwxrwx    1 root     root           14 Aug 30 11:05 libpq++.so.4 ->
libpq++.so.4.0
-rwxr-xr-x    1 root     root        47166 Aug 30 11:05 libpq++.so.4.0
-rwxr-xr-x    1 root     root      1041877 Aug 30 11:05 plperl.so
-rwxr-xr-x    1 root     root        90075 Aug 30 11:05 plpgsql.so
-rwxr-xr-x    1 root     root       540450 Aug 30 11:05 plpython.so
-rwxr-xr-x    1 root     root        33726 Aug 30 11:05 pltcl.so




##################### try.pc #########################
#include <stdio.h>

EXEC SQL BEGIN DECLARE SECTION;
int result;
EXEC SQL END DECLARE SECTION;

int main()
{ EXEC SQL CONNECT TO TmDB; EXEC SQL SELECT (1+1) INTO :result;
 printf("Result = %d\n",result);
 return 0;

}

##################### Makefile#######################
EC        = ecpg
CC        = gcc
INCPG     = /usr/local/pgsql/include   # Path for postgresql includes.

#Declaration header.
LIBPG     = /usr/local/pgsql/lib       # Path for ecpg libraries.
LIBSPG    = -lecpg -lpq                # Ecpg libraries.
CFLAGS    = -Wall -g -c


%.c: %.pc
$(EC) -t -o $@ $<

%.o: %.c
$(CC) $(CFLAGS) -I $(INCPG) -o $@ $<

all: try


try: try.o
$(CC) -o $@ $^ -L $(LIBPG) $(LIBSPG)

clean:
-rm -f *.o core





Re: ecpg help

From
Jim Parker
Date:
The only thing that catches my eye, is the lack of the statement
exec sql include sqlca

with the include files.  I forget the exact reason, but it is needed 
for the
ECPG preprocessor.

hope this helps.

cheers,
Jim Parker 

On 2002.09.25 12:58 Gary Knopp wrote:
> Hello,
>  I'm running Postgresql  7.2.2 on RedHat Linux 7.1.  I am trying to
> use
> Postgres embedded sql
>         preprocessor (ECPG).  However, I get a loading shared library
> problem when I attempt to
>  execute a program.  I included a simple example below...
> 
> Thanks
> 
> Error:
> ============
> try: error while loading shared libraries: libecpg.so.3: cannot load
> shared
> object file: No such file or directory
> 
> echo $LD_LIBRARY_PATH
> ======================
> :/home/smith/lib:/usr/local/pgsql/lib:/usr/lib/qt/lib
> 
> ls -l /usr/localpgsql/lib
> -rw-r--r--    1 root     root        46302 Aug 30 11:05 libecpg.a
> lrwxrwxrwx    1 root     root           16 Aug 30 11:05 libecpg.so ->
> libecpg.so.3.3.0
> lrwxrwxrwx    1 root     root           16 Aug 30 11:05 libecpg.so.3
> ->
> libecpg.so.3.3.0
> -rwxr-xr-x    1 root     root        40220 Aug 30 11:05
> libecpg.so.3.3.0
> -rw-r--r--    1 root     root         6664 Aug 30 11:05 libpgeasy.a
> lrwxrwxrwx    1 root     root           16 Aug 30 11:05 libpgeasy.so
> ->
> libpgeasy.so.2.2
> lrwxrwxrwx    1 root     root           16 Aug 30 11:05 libpgeasy.so.2
> ->
> libpgeasy.so.2.2
> -rwxr-xr-x    1 root     root        10809 Aug 30 11:05
> libpgeasy.so.2.2
> -rw-r--r--    1 root     root        30574 Aug 30 11:05 libpgtcl.a
> lrwxrwxrwx    1 root     root           15 Aug 30 11:05 libpgtcl.so ->
> libpgtcl.so.2.2
> lrwxrwxrwx    1 root     root           15 Aug 30 11:05 libpgtcl.so.2
> ->
> libpgtcl.so.2.2
> -rwxr-xr-x    1 root     root        35241 Aug 30 11:05
> libpgtcl.so.2.2
> -rw-r--r--    1 root     root        82598 Aug 30 11:05 libpq.a
> -rw-r--r--    1 root     root        68982 Aug 30 11:05 libpq++.a
> lrwxrwxrwx    1 root     root           12 Aug 30 11:05 libpq.so ->
> libpq.so.2.2
> lrwxrwxrwx    1 root     root           14 Aug 30 11:05 libpq++.so ->
> libpq++.so.4.0
> lrwxrwxrwx    1 root     root           12 Aug 30 11:05 libpq.so.2 ->
> libpq.so.2.2
> -rwxr-xr-x    1 root     root        74685 Aug 30 11:05 libpq.so.2.2
> lrwxrwxrwx    1 root     root           14 Aug 30 11:05 libpq++.so.4
> ->
> libpq++.so.4.0
> -rwxr-xr-x    1 root     root        47166 Aug 30 11:05 libpq++.so.4.0
> -rwxr-xr-x    1 root     root      1041877 Aug 30 11:05 plperl.so
> -rwxr-xr-x    1 root     root        90075 Aug 30 11:05 plpgsql.so
> -rwxr-xr-x    1 root     root       540450 Aug 30 11:05 plpython.so
> -rwxr-xr-x    1 root     root        33726 Aug 30 11:05 pltcl.so
> 
> 
> 
> 
> ##################### try.pc #########################
> #include <stdio.h>
> 
> EXEC SQL BEGIN DECLARE SECTION;
> int result;
> EXEC SQL END DECLARE SECTION;
> 
> int main()
> {
>   EXEC SQL CONNECT TO TmDB;
>   EXEC SQL SELECT (1+1) INTO :result;
> 
>   printf("Result = %d\n",result);
> 
>   return 0;
> 
> }
> 
> ##################### Makefile#######################
> EC        = ecpg
> CC        = gcc
> INCPG     = /usr/local/pgsql/include   # Path for postgresql includes.
> 
> #Declaration header.
> LIBPG     = /usr/local/pgsql/lib       # Path for ecpg libraries.
> LIBSPG    = -lecpg -lpq                # Ecpg libraries.
> CFLAGS    = -Wall -g -c
> 
> 
> %.c: %.pc
> $(EC) -t -o $@ $<
> 
> %.o: %.c
> $(CC) $(CFLAGS) -I $(INCPG) -o $@ $<
> 
> all: try
> 
> 
> try: try.o
> $(CC) -o $@ $^ -L $(LIBPG) $(LIBSPG)
> 
> clean:
> -rm -f *.o core
> 
> 
> 
> 
> ---------------------------(end of 
> broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
> 
> http://www.postgresql.org/users-lounge/docs/faq.html
> 


Re: ecpg help

From
Michael Meskes
Date:
On Wed, Sep 25, 2002 at 12:58:55PM -0400, Gary Knopp wrote:
>  I'm running Postgresql  7.2.2 on RedHat Linux 7.1.  I am trying to use
> Postgres embedded sql
>         preprocessor (ECPG).  However, I get a loading shared library
> problem when I attempt to
>  execute a program.  I included a simple example below...
> ...

> :/home/smith/lib:/usr/local/pgsql/lib:/usr/lib/qt/lib
> 
> ls -l /usr/localpgsql/lib                 
I take it the missing "/" is a typo here, but something like this is
probably the reason. Your problem is on OS level and nothing to do with
ecpg itself. I'd try running ldd to find out more.

Michael
-- 
Michael Meskes
Michael@Fam-Meskes.De
Go SF 49ers! Go Rhein Fire!
Use Debian GNU/Linux! Use PostgreSQL!


Re: ecpg help

From
Michael Meskes
Date:
On Fri, Sep 27, 2002 at 08:54:24AM -0400, Jim Parker wrote:
> The only thing that catches my eye, is the lack of the statement
> 
>     exec sql include sqlca
> 
> with the include files.  I forget the exact reason, but it is needed 
> for the
> ECPG preprocessor.

No, not anymore. Nowadays ecpg does include it automatically.

Michael
-- 
Michael Meskes
Michael@Fam-Meskes.De
Go SF 49ers! Go Rhein Fire!
Use Debian GNU/Linux! Use PostgreSQL!