gcc链接器如何选择/ usr/lib与/ usr/lib64进行库分辨率?

Wil*_*mKF 5 64-bit gcc porting pam linker-errors

我对gcc的链接包括以下两个连续的条目:

-lrt
-lpam
Run Code Online (Sandbox Code Playgroud)

这看起来扩大为:

/usr/lib64/librt.so /usr/lib/libpam.so
Run Code Online (Sandbox Code Playgroud)

为什么rt解析为lib64而pam解析为lib并因此失败:

/usr/lib/libpam.so: could not read symbols: File in wrong format
Run Code Online (Sandbox Code Playgroud)

因为它只有32位ELF.有一个/usr/lib64/libpam.so是64位ELF,为什么不采取?

小智 1

尝试使用 -m32 强制 32 位。还要检查您正在编译的 .bashrc 或 .bash_profile 设置的任何环境变量,以确定是否存在交叉连接。