Re: /usr/bin/ld: cannot find -lpq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Title: Re: /usr/bin/ld: cannot find -lpq
Hi Lew,

Thanks for your response.  But I am more confused...

When I ran “ldd /usr/local/bin/pivot” on the machine I have
successfully compiled pivot.c, it returns:
        libpq.so.5 => /usr/local/pgsql/lib/libpq.so.5 (0x0000002a95557000)
        libc.so.6 => /lib64/tls/libc.so.6 (0x0000003b0dc00000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003b12f00000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003b0da00000)
I check LD_LIBRARY_PATH variable on the centOS machine
(where I am trying to compile now), it returns:
  LD_LIBRARY_PATH=/lib:/opt/gridengine/lib/lx26-x86:/state/partition1/apps/pgsql/lib:/usr/local/lib:/opt/gridengine/lib/lx26-x86
and I find libpq.so,  libpq.so.5, and libpq.so.5.1 in /state/partition1/apps/pgsql/lib
directory; libc.so.6 and libcrypt.so.1 both in /lib.  Finally, the last one,
/lib64/ld-linux-x86-64.so.2 is a symbolic link to /lib64/ld-2.3.4.so (on
Redhat 64-bit machine).  There is no such thing as ld-linux-x86-64.so.2
on centOS machine.  However, there is /lib/ ld-linux.so.2 which is a
symbolic link to /lib/ld-2.5.so.

I don’t really know what this means with respect to the error message:
  /usr/bin/ld: cannot find -lpq
  collect2: ld returned 1 exit status
Is there any way to extrapolate something a bit more relavant, I wonder.

Regards,

Tena Sakai
tsakai@xxxxxxxxxxxxxx


On 12/3/09 8:26 PM, "Yon Lew" <lewyon@xxxxxxxxx> wrote:

Just a guess, but it sounds to me like a problem with $LD_LIBRARY_PATH.

Try running the ldd command to list your dependencies:

> ldd /bin/ls

librt.so.1 => /lib64/librt.so.1 (0x00002b40a142b000)
libacl.so.1 => /lib64/libacl.so.1 (0x00002b40a1534000)
libc.so.6 => /lib64/libc.so.6 (0x00002b40a163b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b40a187c000)
/lib64/ld-linux-x86-64.so.2 (0x00002b40a130f000)
libattr.so.1 => /lib64/libattr.so.1 (0x00002b40a1995000)

If you come up with unmatched dependencies try adding the path containing the .so file, or its symbolic link, to your $LD_LIBRARY_PATH or $LD_LIBRARY_PATH_64 environment variable.  When ldd comes back clean you should be good to go.



On Thu, Dec 3, 2009 at 7:25 PM, Tena Sakai <tsakai@xxxxxxxxxxxxxx> wrote:
Hi Everybody,

I am not sure if this is the right mailing list to ask
what I want to ask.  Please direct me to the right place,
if there is a better list.

Close to a year ago, I wrote a C program using libpq package.
It took me a week to debug, but I got it compiled and I have
been using it regularly. The program is named pivot and compiled
on a Redhat linux (AMD 64-bit) machine with the command:

  cc -I/pgsql/pgsql836/include -L/pgsql/pgsql836/lib -lpq -o pivot pivot.c

And I just tried recompiling it on that machine and it compiles without a
complaint.  I now need to re-compile it on a Intel 32-bit machine running
centOS.  When I issue the same command on the centOS machine, I get
complaint:
  /usr/bin/ld: cannot find -lpq
  collect2: ld returned 1 exit status

I thought that this meant that the shared library named libpq.so.bla
is missing.  But to my surprise, I find libpq.so.4.1 in /usr/lib
directory.  (There is also a symbolic link libpq.so.4 pointing at
libpq.so.4.1 in the same place.)

So, I don't know what the complaint is about.

Can someone please clue me in?

Thank you in advance.

Regards,

Tena Sakai
tsakai@xxxxxxxxxxxxxx


--
Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux