开发者

How does gcc linker choose /usr/lib versus /usr/lib64 for library resolution?

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开发者_如何学C.so with is 64 bit ELF, why isn't it taken?


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜