未定义的引用符号'timer_settime @@ GLIBC_2.3.3

操作系统:Linux

我正在尝试链接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 

任何人都可以build议我如何解决这个问题。

发生此问题是因为rt库不链接。

编辑你的qemu目录下的Makefile.target,找到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) 

问题通过添加编辑两个文件, MakefileMakefile.target来解决

LIBS+=-lz -lrt -lm