转载:
自己在qemu上做了一些修改,来完成一些所需的工作,但是之前修改的时候是在我 的mac上的做的,mac上装的ubuntu是64bit的,后来转到thinkpad上做的时候,不想把文件从新合,就直接打包拷贝到thinkpad 上的ubuntu系统里了,但是thinkpad上的ubuntu系统时32bit的,configure后make时出现了以下错误:
/usr/bin/ld: ../qemu-timer.o: undefined reference to symbol 'timer_settime@@GLIBC_2.2'/usr/bin/ld: note: 'timer_settime@@GLIBC_2.2' is defined in DSO /lib/i386-linux-gnu/librt.so.1 so try adding it to the linker command line/lib/i386-linux-gnu/librt.so.1: could not read symbols: 无效的操作collect2: 错误: ld 返回 1make[1]: *** [qemu-system-arm] 错误 1make: *** [subdir-arm-softmmu] 错误 2
搜了半天,后来在一个论坛里找到一个方法,修复了这个问题,但是我目前还没弄明白问题的所在,先把解决方案放这儿备用吧。
论坛的地址是:
但是怕地址失效,就把关键的地方简介的说下:
主要是里面提供了一个patch,给configure文件打完补丁之后就解决了,patch里面的内容是:
--- configure.orig 2013-06-13 10:56:41.516276000 +0100+++ configure 2013-06-13 11:20:26.010368566 +0100@@ -1362,7 +1362,7 @@ cat > $TMPC <
可以直接把上面的内容拷贝到自己创建的空文件中,文件名论文里面定义的是configure.patch,但是我觉得其他的名字应该也可以,然后执行下面的指令
patch configure configure.patch
之后重新configure后再make就没有问题了。
或者修改Makefile.target, 添加LIBS+=-lz -lrt -lm