使用linuxdeployqt时libicu库缺失问题的解决咨询
解决linuxdeployqt找不到libicui18n.so.56等ICU库的问题
这个问题本质是ldd(以及依赖它的linuxdeployqt)没有把Qt安装目录的lib文件夹纳入系统库搜索路径,所以明明库存在却找不到。下面是几个亲测有效的解决方法:
方法1:临时设置LD_LIBRARY_PATH环境变量(最推荐)
这是最简单直接的方式,临时让系统优先搜索Qt的库目录:
- 打开终端,先执行以下命令把Qt的lib目录加入到库搜索路径:
export LD_LIBRARY_PATH=/home/user/Qt/5.6/gcc_64/lib:$LD_LIBRARY_PATH - 紧接着在同一个终端窗口里运行你的linuxdeployqt命令:
./linuxdeployqt-continuous-x86_64.AppImage /home/user/QtProjects/build-VPSTest-Desktop_Qt_5_6_0_GCC_64bit-Release/VPSTest
注意:这个环境变量设置只在当前终端会话有效,关闭终端后会失效,下次打包需要重新执行export命令。
方法2:直接将ICU库复制到可执行文件目录
如果不想设置环境变量,可以手动把缺失的ICU库复制到你的可执行文件所在的目录:
- 复制Qt目录下的三个ICU库到可执行文件目录:
cp /home/user/Qt/5.6/gcc_64/lib/libicui18n.so.56 /home/user/QtProjects/build-VPSTest-Desktop_Qt_5_6_0_GCC_64bit-Release/ cp /home/user/Qt/5.6/gcc_64/lib/libicuuc.so.56 /home/user/QtProjects/build-VPSTest-Desktop_Qt_5_6_0_GCC_64bit-Release/ cp /home/user/Qt/5.6/gcc_64/lib/libicudata.so.56 /home/user/QtProjects/build-VPSTest-Desktop_Qt_5_6_0_GCC_64bit-Release/ - 再运行linuxdeployqt命令,工具就能在当前目录找到这些库了。
方法3:永久添加Qt库路径到系统库搜索(可选)
如果经常打包Qt项目,可以把Qt的lib目录永久加入系统库路径:
- 编辑
/etc/ld.so.conf.d/qt5.conf文件(如果文件不存在就创建):sudo nano /etc/ld.so.conf.d/qt5.conf - 在文件里添加一行:
/home/user/Qt/5.6/gcc_64/lib - 保存退出后,执行以下命令更新系统缓存:
sudo ldconfig
这样以后任何终端会话都能直接找到Qt的库,不需要每次都设置LD_LIBRARY_PATH。
验证解决效果
打包完成后,你可以用ldd检查生成的部署包(或AppImage解压后的可执行文件),确认ICU库已经被正确打包:
ldd /path/to/deployed/VPSTest | grep icu
如果输出里的ICU库路径指向部署包内的文件,就说明问题解决了。
内容的提问来源于stack exchange,提问作者konstantin_doncov
相关产品推荐
相关产品推荐

