Thread: C compiler error when using PostGres

C compiler error when using PostGres

From
"G. Anthony Reina"
Date:
I recently upgraded the hardrive on our database system and copied all
of the Postgres files from the old harddrive to the new one.

Everything seems to work find except when I try to compile a C program
that uses SQL backend commands. The program did compile on the old
harddrive and ran fine. Now, during compilation I get the following
error:

/database/local/pgsql/lib/libpq.a(fe-auth.o): In function
`pg_password_sendauth':
fe-auth.o(.text+0x17): undefined reference to `crypt'

Anyone know how to fix this?

Thanks.
-Tony

--

                        ( @@ )
 ////////////////////oOO*(__)*OOo///////////////////////
//                                                    //
// G. Anthony Reina, MD                               //
// The Neurosciences Institute                        //
// 10640 John Jay Hopkins Drive                       //
// San Diego, CA   92121  USA                         //
//                                                    //
// Voice: (619) 626-2000     FAX: (619) 626-2199      //
// E-mail: reina@nsi.edu                              //
//                                                    //
///////////////////////////////////////////////////////

Re: [SQL] C compiler error when using PostGres

From
"John E. Garrott"
Date:
"G. Anthony Reina" wrote:
>
> I recently upgraded the hardrive on our database system and copied all
> of the Postgres files from the old harddrive to the new one.
>
> Everything seems to work find except when I try to compile a C program
> that uses SQL backend commands. The program did compile on the old
> harddrive and ran fine. Now, during compilation I get the following
> error:
>
> /database/local/pgsql/lib/libpq.a(fe-auth.o): In function
> `pg_password_sendauth':
> fe-auth.o(.text+0x17): undefined reference to `crypt'
>
> Anyone know how to fix this?
>
> Thanks.
> -Tony
>
> --
>
>                         ( @@ )
>  ////////////////////oOO*(__)*OOo///////////////////////
> //                                                    //
> // G. Anthony Reina, MD                               //
> // The Neurosciences Institute                        //
> // 10640 John Jay Hopkins Drive                       //
> // San Diego, CA   92121  USA                         //
> //                                                    //
> // Voice: (619) 626-2000     FAX: (619) 626-2199      //
> // E-mail: reina@nsi.edu                              //
> //                                                    //
> ///////////////////////////////////////////////////////

Add -lcrypt to the end of the line that compiles the application.

John

Re: [SQL] C compiler error when using PostGres

From
"G. Anthony Reina"
Date:
John E. Garrott wrote:
> > ...  Now, during compilation I get the following
> > error:
> >
> > /database/local/pgsql/lib/libpq.a(fe-auth.o): In function
> > `pg_password_sendauth':
> > fe-auth.o(.text+0x17): undefined reference to `crypt'
> >
> > Anyone know how to fix this?
> >

>
> Add -lcrypt to the end of the line that compiles the application.
>
> John


Thanks John,

    That seems to have fixed it. Any idea why I didn't have to include that
library before? Is crypt a PostGres library or a system library?

-Tony

Re: [SQL] C compiler error when using PostGres

From
James Olin Oden
Date:
> John E. Garrott wrote:
> > > ...  Now, during compilation I get the following
> > > error:
> > >
> > > /database/local/pgsql/lib/libpq.a(fe-auth.o): In function
> > > `pg_password_sendauth':
> > > fe-auth.o(.text+0x17): undefined reference to `crypt'
> > >
> > > Anyone know how to fix this?
> > >
>
> >
> > Add -lcrypt to the end of the line that compiles the application.
> >
> > John
>
> Thanks John,
>
>         That seems to have fixed it. Any idea why I didn't have to include that
> library before? Is crypt a PostGres library or a system library?
>

Perhaps on your old system it was just part of your standard libraries.  I kind of
fuzzy on how all this works, but I belive the compiler should have some sort of
setup that tells it where to look for core libraries, and on some systems crypt
would be part of that default, but on other it would not.  Also, I am pretty sure
you can automate some that stuff with "make", and if you used a different make
file, or because it was a different platform, perhaps the makefile was not setup
proprely.Anyway, I think it boils down to some sort of a configuration
issue...james

P.S.  Any more definitave answers?

> -Tony