неопределенная ссылка на символ 'timer_settime@@GLIBC_2.3.3

ОС: линукс

Я пытаюсь связать mips64-softmmu/qemu-system-mips64, но это приводит к ошибке:

./slirp/misc.o: In function `memset':
/usr/include/bits/string3.h:81: warning: memset used with constant zero length parameter; 
this could be due to transposed parameters
/usr/bin/ld: ../qemu-timer.o: undefined reference to symbol 'timer_settime@@GLIBC_2.3.3'
/usr/bin/ld: note: 'timer_settime@@GLIBC_2.3.3' is defined in DSO /lib64/librt.so.1 so   try adding it to the linker command line

/lib64/librt.so.1: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[1]: *** [qemu-system-mips64] Error 1
make: *** [subdir-mips64-softmmu] Error 2

Может ли кто-нибудь предложить мне, как я могу решить эту проблему.


person marry    schedule 17.08.2013    source источник


Ответы (2)


Эта проблема возникает из-за того, что библиотека rt не подключается.

Отредактируйте Makefile.target в каталоге qemu, найдите LIBS+=-lz, добавьте LIBS+=-lrt под этой строкой.

Или, скажем, добавил следующий патч локально

--- a/tools/qemu-xen/Makefile.target    2013-04-05 23:39:54.000000000 +0000
+++ b/tools/qemu-xen/Makefile.target    2013-04-25 13:54:59.360000000 +0000
@@ -206,6 +206,7 @@
obj-$(CONFIG_NO_KVM) += kvm-stub.o
obj-y += memory.o
LIBS+=-lz
+LIBS+=-lrt

QEMU_CFLAGS += $(VNC_TLS_CFLAGS)
QEMU_CFLAGS += $(VNC_SASL_CFLAGS)
person cyblocker    schedule 15.09.2013

Проблема решается путем редактирования двух файлов, Makefile и Makefile.target путем добавления

LIBS+=-lz -lrt -lm

person marry    schedule 16.09.2013