标题:请教版主一个关于qtopia交叉编译的问题
作者:alphalzw
日期:2006-08-27 21:16
内容:
make[1]: Entering directory `/home/QTE_Sitsang/qtopia-free-1.7.0/src/applications/sysinfo'
arm-linux-g++ -L/home/QTE_Sitsang/qtopia-free-1.7.0/lib -Wl,-rpath,/home/QTE_Sitsang/qtopia-free-1.7.0/lib -L/home/QTE_Sitsang/qt-embeded-2.3.7/lib -Wl,-rpath,/home/QTE_Sitsang/qt-embeded-2.3.7/lib -o /home/QTE_Sitsang/qtopia-free-1.7.0/bin/sysinfo .obj/linux-sitsang-g++//memory.o .obj/linux-sitsang-g++//graph.o .obj/linux-sitsang-g++//load.o .obj/linux-sitsang-g++//storage.o .obj/linux-sitsang-g++//versioninfo.o .obj/linux-sitsang-g++//sysinfo.o .obj/linux-sitsang-g++//main.o .obj/linux-sitsang-g++//moc_memory.o .obj/linux-sitsang-g++//moc_graph.o .obj/linux-sitsang-g++//moc_load.o .obj/linux-sitsang-g++//moc_storage.o .obj/linux-sitsang-g++//moc_versioninfo.o .obj/linux-sitsang-g++//moc_sysinfo.o-lqpe -lqtopia -lqte -lm -lts -ljpeg
/usr/local/arm-linux/bin/../lib/gcc-lib/arm-linux/3.2.1/../../../../arm-linux/bin/ld: warning: libuuid.so.1, needed by /home/QTE_Sitsang/qtopia-free-1.7.0/lib/libqtopia.so, not found (try using -rpath or -rpath-link)
/home/QTE_Sitsang/qtopia-free-1.7.0/lib/libqtopia.so: undefined reference to `uuid_generate'
collect2: ld returned 1 exit status
make[1]: *** [/home/QTE_Sitsang/qtopia-free-1.7.0/bin/sysinfo] Error 1
make[1]: Leaving directory `/home/QTE_Sitsang/qtopia-free-1.7.0/src/applications/sysinfo'
make: *** Error 2
在arm-linux-gcc的lib目录,qtopia的lib目录下都有这个库,这个库我是通过e2fsprogs-1.35.tar.gz编译获得的,而且我编译成的也是共享库
实在不知道是什么原因,请版主帮忙解决一下
#1 [alphalzw 08-28 10:42]
终于解决了
原来是qtopia.so库需要libuuid.so.1
只要修改sysinfo目录下的Makefile,在-lqtopia之前加上-luuid就可以通过了
#2 [alphalzw 08-28 10:57]
如果只修改Makefile其他地方仍然会出现类似问题
所以最好的方法是在运行./configure时加入-lib -luuid参数
#3 [shiroki 08-30 15:45]
你这个问题是因为你的qte没有链接上uuid, qte链接上uuid后面的库就不需要显式地再去链接一次了。
#4 [alphalzw 09-01 13:07]
版主说的有道理
我显式连接的时候又出现了其他问题
/usr/local/arm-linux/bin/../lib/gcc-lib/arm-linux/3.2.1/libgcc.a(_udivsi3.oS)(.text+0x0): In function `__udivsi3':
: multiple definition of `__udivsi3'
/usr/local/arm-linux/bin/../lib/gcc-lib/arm-linux/3.2.1/libgcc.a(_divsi3.oS)(.text+0x0): In function `__divsi3':
: multiple definition of `__divsi3'
............
我换成2.95.3的编译器就可以了
我在网上找了一下资料,说是编译器不同,有时对库的链接的先后顺序的也不同