UX:ld: ERROR: error irrecuperable: no se =?iso-8859-1?Q?encontr=BE?= la biblioteca: -lPW
Posted in 2000
Topics: General Discussion
I have the following script to generate a new Informix runtime that works under SCO OpenServer 5.0.5 but does not under UnixWare 7.1. It says something about the linker that does not find some library. Can anyone help me? Thanks in advance -- Evelio Martínez
Evelio Martínez wrote:
> I have the following script to generate a new Informix runtime that
> works under SCO OpenServer 5.0.5 but does not under UnixWare 7.1.
>
> It says something about the linker that does not find some library.
>
> Can anyone help me?
>
> Thanks in advance
> --
> Evelio Martínez
>
> ------------------------------------------------------------------------
> export INFORMIXDIR=/e/informix7>
> fuentes="arboles.c bloqueos.c depurar.c espacio.c ficsec.c obsoletas.c pila.c varias.c"
> objetos=`echo "$fuentes" | sed "s/\\.c/\\.o/g"`
>
> ###### COMPILAR PROGRAMAS EN C
>
> echo "\\n Compilar programas en C (s/n) ? \\c" ; read a ;
>
> case $a in
> [sS])
> echo "\\nCompilando programas en C ..."
> # -c suprimir linkado y no generar ejecutable
> # -I Busca un fichero include en un directorio antes de buscar en la
> # lista standar de directorios
> if cc -c -lm $fuentes 2>&1 | more
> then
> echo " "
> else
> echo "Error de en compilacion. "
> exit
> fi
> esac
>
> ###### GENERAR
>
> # -lPW es para que encuentre logname()
>
> echo "\\n Generar nfglgo (s/n) ? \\c" ; read a ;
>
> case $a in
> [sS]) echo "\\nGenerando nfglgo..."
> $INFORMIXDIR/bin/cfglgo fgiusr.c $objetos -o nfglgo -lPW
> esac
>
> ###### COPIAR
>
> echo "\\n Copiar a fglgo (s/n) ? \\c" ; read a ;
> case $a in
> [sS]) mv $INFORMIXDIR/bin/fglgo $INFORMIXDIR/bin/fglgo.ant
> cp nfglgo $INFORMIXDIR/bin/fglgo ;;
> esac
make sure that lPW (libPW.a) is on the machine and also at least read permissions are given
to the users who is compiling and linking. I also notice that you make a note that -lPW is
for finding the logname(), if this is a library which is written by yourselves make sure
you have compiled all source and created the library. Otherwise if this library is a
system library and does not exist on the Unixware you could search all libraries for
logname() and change the reference to lPW. To do so use the system command nm with
appropriate options "see man -a nm"
--
Compliments of QueriX
--------------------------------------------------------------------------------------------------
QueriX 4GL Compilers are Informix 4GL Compatible, and Connection to other RDBMS such as
Oracle.
Hydra 4GL Compiler (Compatible with I4GL) Compile once, run everywhere
Phoenix Windows GUI. (Front End to 4GL)
Chimera Java GUI The only GUI you will ever need... (Front End to 4GL)
Arachne Web Technology (Front End to 4GL on the Web & HTML Report Generator)
ESQL/C Compiler
For more details visit: http://www.querix.com/
---------------------------------------------------------------------------------------------------
QueriX 4GL / Mehdi wrote:
> Evelio Martínez wrote:
>
> > I have the following script to generate a new Informix runtime that
> > works under SCO OpenServer 5.0.5 but does not under UnixWare 7.1.
> >
> > It says something about the linker that does not find some library.
> >
> > Can anyone help me?
> >
> > Thanks in advance
> > --
> > Evelio Martínez
> >
> > ------------------------------------------------------------------------
> > export INFORMIXDIR=/e/informix7> >
> > fuentes="arboles.c bloqueos.c depurar.c espacio.c ficsec.c obsoletas.c pila.c varias.c"
> > objetos=`echo "$fuentes" | sed "s/\\.c/\\.o/g"`
> >
> > ###### COMPILAR PROGRAMAS EN C
> >
> > echo "\\n Compilar programas en C (s/n) ? \\c" ; read a ;
> >
> > case $a in
> > [sS])
> > echo "\\nCompilando programas en C ..."
> > # -c suprimir linkado y no generar ejecutable
> > # -I Busca un fichero include en un directorio antes de buscar en la
> > # lista standar de directorios
> > if cc -c -lm $fuentes 2>&1 | more
> > then
> > echo " "
> > else
> > echo "Error de en compilacion. "
> > exit
> > fi
> > esac
> >
> > ###### GENERAR
> >
> > # -lPW es para que encuentre logname()
> >
> > echo "\\n Generar nfglgo (s/n) ? \\c" ; read a ;
> >
> > case $a in
> > [sS]) echo "\\nGenerando nfglgo..."
> > $INFORMIXDIR/bin/cfglgo fgiusr.c $objetos -o nfglgo -lPW
> > esac
> >
> > ###### COPIAR
> >
> > echo "\\n Copiar a fglgo (s/n) ? \\c" ; read a ;
> > case $a in
> > [sS]) mv $INFORMIXDIR/bin/fglgo $INFORMIXDIR/bin/fglgo.ant
> > cp nfglgo $INFORMIXDIR/bin/fglgo ;;
> > esac
>
> make sure that lPW (libPW.a) is on the machine and also at least read permissions are given
> to the users who is compiling and linking.
libPW.a is not on the UnixWare machine, but it is on the OpenServer.
> I also notice that you make a note that -lPW is
> for finding the logname(), if this is a library which is written by yourselves make sure
> you have compiled all source and created the library. Otherwise if this library is a
> system library and does not exist on the Unixware you could search all libraries for
> logname() and change the reference to lPW.
It is a system library
> To do so use the system command nm with
> appropriate options "see man -a nm"
I have find all lib* on the UnixWare but it is seems not to be on the machine. I have copied the
libPW.a from
the OpenServer to the UnixWare but it does not work.
What do I missed?
By the way, I am going to evaluate dynamic 4GL. What are the main differences compare to Querix?
evelio_ml wrote:
> QueriX 4GL / Mehdi wrote:
>
> > Evelio Martínez wrote:
> >
> > > I have the following script to generate a new Informix runtime that
> > > works under SCO OpenServer 5.0.5 but does not under UnixWare 7.1.
> > >
> > > It says something about the linker that does not find some library.
> > >
> > > Can anyone help me?
> > >
> > > Thanks in advance
> > > --
> > > Evelio Martínez
> > >
> > > ------------------------------------------------------------------------
> > > export INFORMIXDIR=/e/informix7> > >
> > > fuentes="arboles.c bloqueos.c depurar.c espacio.c ficsec.c obsoletas.c pila.c varias.c"
> > > objetos=`echo "$fuentes" | sed "s/\\.c/\\.o/g"`
> > >
> > > ###### COMPILAR PROGRAMAS EN C
> > >
> > > echo "\\n Compilar programas en C (s/n) ? \\c" ; read a ;
> > >
> > > case $a in
> > > [sS])
> > > echo "\\nCompilando programas en C ..."
> > > # -c suprimir linkado y no generar ejecutable
> > > # -I Busca un fichero include en un directorio antes de buscar en la
> > > # lista standar de directorios
> > > if cc -c -lm $fuentes 2>&1 | more
> > > then
> > > echo " "
> > > else
> > > echo "Error de en compilacion. "
> > > exit
> > > fi
> > > esac
> > >
> > > ###### GENERAR
> > >
> > > # -lPW es para que encuentre logname()
> > >
> > > echo "\\n Generar nfglgo (s/n) ? \\c" ; read a ;
> > >
> > > case $a in
> > > [sS]) echo "\\nGenerando nfglgo..."
> > > $INFORMIXDIR/bin/cfglgo fgiusr.c $objetos -o nfglgo -lPW
> > > esac
> > >
> > > ###### COPIAR
> > >
> > > echo "\\n Copiar a fglgo (s/n) ? \\c" ; read a ;
> > > case $a in
> > > [sS]) mv $INFORMIXDIR/bin/fglgo $INFORMIXDIR/bin/fglgo.ant
> > > cp nfglgo $INFORMIXDIR/bin/fglgo ;;
> > > esac
> >
> > make sure that lPW (libPW.a) is on the machine and also at least read permissions are given
> > to the users who is compiling and linking.
>
> libPW.a is not on the UnixWare machine, but it is on the OpenServer.
>
O.K
>
> > I also notice that you make a note that -lPW is
> > for finding the logname(), if this is a library which is written by yourselves make sure
> > you have compiled all source and created the library. Otherwise if this library is a
> > system library and does not exist on the Unixware you could search all libraries for
> > logname() and change the reference to lPW.
>
> It is a system library
>
In that case it should have been in the same directory as the rest
of the system libraries.
> > To do so use the system command nm with
> > appropriate options "see man -a nm"
>
> I have find all lib* on the UnixWare but it is seems not to be on the machine. I have copied the
> libPW.a from
> the OpenServer to the UnixWare but it does not work.
>
> What do I missed?
>
It could be any of the following:
1) Incompatible between Unixware and Openserver.
2) The permissions on the libraries doesn't allow the linker to use it,
i.e. not accessible by the user compiling the programs.
You should really try the nm command to find out in which library
on the system you can find the function logname().
On Unixware pw.h has a definition for logname(), I could not find a
similar function in any of the Unixware libraries. There is a function
which does a similar thing:
it is typed as following:
char cuserid(char *) and it is available in the standard libraries, so
you need not include any extra libraries.
As a mater of interest is this a function you are calling or is it one
that D4GL requires at link time. If the function is yours you can replace
it with the cuserid.
>
> By the way, I am going to evaluate dynamic 4GL. What are the main differences compare to Querix?
Querix and D4GL basically compile the same code, however
QueriX creates the same look and feel of windows applications with
no need to change any code at all. D4GL on the other hand has a
GUI front end which is not really a windows look and feel. It works more
like a screen scraper and is written in Tcl/Tk . You would also have to
change some code to benefit from this.
Querix in the same way allows you to deploy your applications on
any network with a Java Front End, again no source change, in fact
once your application is compiled would work with any of the Char,
Windows, Java and HTML front ends.
Configuration in QueriX is easy per client or globally with the use of
templates.
In the current version of the QueriX there is only full compilation no
P-Code version is currently available. (Version 4 would have P- Code as
well as Total compilation + many enhancements to the language itself due
Q1 2001.)
D4GL is only P-CODE and is not going to support full compilation.
Querix can compile for Oracle with minimum of effort from the
same code, Other databases and concurrent connections
with multi-vendor databases would be supported from version 4.
Last but not least the QueriX pricing is much more favorable than that of D4GL.
--
Compliments of QueriX
--------------------------------------------------------------------------------------------------
QueriX 4GL Compilers are Informix 4GL Compatible, and Connection to other RDBMS such as Oracle.
Hydra 4GL Compiler (Compatible with I4GL) Compile once, run everywhere
Phoenix Windows GUI. (Front End to 4GL)
Chimera Java GUI The only GUI you will ever need... (Front End to 4GL)
Arachne Web Technology (Front End to 4GL on the Web & HTML Report Generator)
ESQL/C Compiler
For more details visit: http://www.querix.com/
---------------------------------------------------------------------------------------------------
Hola Evelio Yo que tu accederia a la pagina www.sco.com/migration alli encontraras un acceso a news group donde aparecen algunas anotaciones sobre migracion de OpenServer 5.0.5 a Unixware 7.1 y sibre 4gl. A mi no me ha dado ningun problema la migracion pero tienes que tener en cuenta la version de 4gl. salu2 Evelio Mart'nez escribi' en mensaje <39191CFC.74AA0C12@sinix.net>... > >I have the following script to generate a new Informix runtime that >works under SCO OpenServer 5.0.5 but does not under UnixWare 7.1. > >It says something about the linker that does not find some library. > >Can anyone help me? > >Thanks in advance >-- >Evelio Mart'nez > > >