回复: QT静态编译疑问
#11 回 10楼(5xinfeiyang) 的帖子 [wxj120bw 11-27 22:51]
你的hello的确是arm平台的 同样的方法确认librt.so.1等文件是不是arm平台的 若是 拷贝到/lib目录下 不用管大小
#12 [5xinfeiyang 11-28 08:35]
哎,发现问题了,我执行了locate librt.so.1命令显示如下:
/home/yajun/usr/local/arm/3.4.1/arm-linux/lib/librt.so.1
/lib/librt.so.1
/lib/tls/i686/cmov/librt.so.1
/usr/local/arm/3.4.1/arm-linux/lib/librt.so.1我查看第一个的属性file /lib/librt.so.1 ,显示/lib/librt.so.1: symbolic link to `librt-2.11.1.so'我同样找到librt-2.11.1.so查看其属性是/lib/librt-2.11.1.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped这个不是ARM的,但是我查看/usr/local/arm/3.4.1/arm-linux/lib/librt.so.1属性是/usr/local/arm/3.4.1/arm-linux/lib/librt.so.1: symbolic link to `librt-2.3.2.so',我找到librt-2.3.2.so后再查看属性是/usr/local/arm/3.4.1/arm-linux/lib/librt-2.3.2.so: ELF 32-bit LSB shared object, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.4.3, not stripped这个是ARM的了,那我就是要把所有适合ARM的库以及链接全部拷贝到开发板的/lib目录下吧,先试试,不行再研究,谢谢
#13 [5xinfeiyang 11-28 10:45]
刚刚试了一下,需要链接以及库一共这么多,
libc.so.6libc-2.3.2.solibdl.so.2libdl-2.3.2.solibgcc_s.so.1
libm.so.6 libm-2.3.2.solibpthread.so.0 libpthread-0.10.so librt.so.1
librt-2.3.2.so libstdc++.so.6libstdc++.so.6.0.1,我把这些库拷到我U盘一个文件夹ku中,挂载U盘到开发板,进入/mnt/usb/ku目录下,ls查看时提示了ls: error while loading shared libraries: ld-linux.so.2: cannot open shared object file: No such file or directory又在Ubuntu中找到了ld-linux.so.2库,放到U盘的ku文件夹中,再挂载,ls后又提示ls: libm.so.6: version `GLIBC_2.4' not found (required by ls)
ls: libc.so.6: version `GLIBC_2.4' not found (required by ls),在开发板的/lib目录下找到了这两个库,拷贝到了ku文件夹下,再ls终于看到了内容,将文件夹中的库拷到开发板/lib目录下,执行umount -a卸载U盘时提示
umount: /lib/libgcc_s.so.1: version `GCC_3.5' not found (required by /usr/lib/libblkid.so.1)
umount: /lib/libgcc_s.so.1: version `GCC_3.5' not found (required by /usr/lib/libuuid.so.1)
umount: /lib/libc.so.6: version `GLIBC_2.2.4' not found (required by /lib/libgcc_s.so.1)
umount: /lib/libc.so.6: version `GLIBC_2.1.3' not found (required by /lib/libgcc_s.so.1)
umount: /lib/libc.so.6: version `GLIBC_2.0' not found (required by /lib/libgcc_s.so.1),其中libgcc_s.so.1这个库在文件夹没有,但是libc.so.6这个库已经有了呀,是因为版本的问题吗?如何查看呢?好纠结。。。
#14 回 13楼(5xinfeiyang) 的帖子 [wxj120bw 11-28 20:51]
终端有个环境变量PATH(应该是这个) 你执行下echo $PATH 看结果有库所在的路径
PS:白天较忙 无法及时回复
#15 回 6楼(5xinfeiyang) 的帖子 [yanxinorg 11-28 22:15]
不行的