qt: 无法打开可执行文件 cannot open shared object file: no such file or directory_小鹰信息技术服务部的博客-爱代码爱编程
Qt项目,在开发机上发布了可执行程序,拷贝至目标机运行,chmod +x 授予可执行权限之后,双击没反应,于是用终端指令打开,提示:
error while loading shared libraries: libQt5Xlsx.so.0: cannot open shared object file: No such file or directory
原来是无法加载libQt5Xlsx.so.0这个库,用指令查看程序用到了哪些库:
readelf -d xxxx
只提示libQt5Xlsx.so.0找不到。那么其他能找到的库应该在系统目录的。
于是挑一个没问题的库进行搜索:libQt5SerialPort.so.5, 搜到它的位置在:
/user/lib/x86_64-linux-gnu目录下,
然后逐个核对了,其他库都能在该目录下找到,他们是银河麒麟系统自带的,而QtXlsxWriter是个第三方库,因此没有自带。
解决方法是把libQt5Xlsx.so.0这个文件拷贝至/user/lib/x86_64-linux-gnu目录(需要su权限):
cp /home/zhouyingge1104/ArtilleryAimLNX/libQt5Xlsx.so.0 /usr/lib/x86_64-linux-gnu/libQt5Xlsx.so.0
重新打开软件,成功!