2013-08-17 99 views
3

操作系统:Linux未定义的参考符号“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 '[email protected]@GLIBC_2.3.3' 
/usr/bin/ld: note: '[email protected]@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 

任何人都可以建议我怎么能解决这个问题。

回答

1

问题是由编辑两个文件,MakefileMakefile.target解决加入

LIBS+=-lz -lrt -lm

10

发生此问题是因为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)