Я на RHEL 5.8
на x86_64
машине:
$ 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 -> libuuid.so.1.2
в /lib? - person rwos   schedule 12.04.2012