Linux RHEL链接器错误
我在Linux RHEL链接器错误,linux,rhel,Linux,Rhel,我在x86\u 64机器上运行的是RHEL 5.8: $ uname -r 2.6.18-308.1.1.el5 $ uname -m x86_64 $ 尝试交叉编译源代码,使之与i386兼容: CFLAGS += -m32 LDFLAGS += -L/lib -lpthread -luuid 但链接阶段失败并出现错误: /usr/bin/ld: skipping incompatible /usr/lib64/libuuid.so when searching for -luuid /us
x86\u 64
机器上运行的是RHEL 5.8
:
$ uname -r
2.6.18-308.1.1.el5
$ uname -m
x86_64
$
尝试交叉编译源代码,使之与i386兼容:
CFLAGS += -m32
LDFLAGS += -L/lib -lpthread -luuid
但链接阶段失败并出现错误:
/usr/bin/ld: skipping incompatible /usr/lib64/libuuid.so when searching for -luuid
/usr/bin/ld: skipping incompatible /usr/lib64/libuuid.a when searching for -luuid
/usr/bin/ld: cannot find -luuid
collect2: ld returned 1 exit status
实际上,主机具有/lib/libuuid.so.1.2
:
$ readelf -h /lib/libuuid.so.1.2
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: Intel 80386
Version: 0x1
Entry point address: 0xf90
Start of program headers: 52 (bytes into file)
Start of section headers: 13352 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 6
Size of section headers: 40 (bytes)
Number of section headers: 28
Section header string table index: 27
$
是否有任何
ld
或其他选项来修复此链接问题?如果要链接特定的共享对象,则必须将其直接传递给编译器或链接器。链接器只搜索库名,不搜索版本号(“libuuid.so”)。约定是将其符号链接到soname
(本例中为“libuuid.so.1”),而后者又是真正的共享库的符号链接(本例中为“libuuid.so.1.2”)
因此,链接器需要在/lib
中使用这些符号链接才能找到库
(有关此主题的更多信息:)您是否在/lib中也有
libuuid.so->libuuid.so.1.2
symlink?我已经创建了链接并编译了二进制文件,ok!你能把答案贴出来吗?我会接受的。