Question

My link line to gcc includes the following two entries in succession:

-lrt
-lpam

And this appears expanded as:

/usr/lib64/librt.so /usr/lib/libpam.so

Why is rt resolved to lib64 whereas pam is resolved to lib and consequently fails:

/usr/lib/libpam.so: could not read symbols: File in wrong format

Since it is only 32 bit ELF. There is a /usr/lib64/libpam.so with is 64 bit ELF, why isn't it taken?

Was it helpful?

Solution

Try using -m32 to force 32-bits. Also inspect any environment vatiables that are being set by your .bashrc or .bash_profile that you are compiling under to determine if anything is cross-wired.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top