Flutter Linux发布版可执行文件无法加载libobjectbox.so问题求助
解决Flutter Linux发布版找不到libobjectbox.so的问题
方法1:通过环境变量指定库路径
运行程序时,直接设置LD_LIBRARY_PATH指向bundle/lib目录:
LD_LIBRARY_PATH=./bundle/lib ./my_project
如果需要让用户双击就能运行,可写一个shell脚本包装:
- 创建
run_my_project.sh文件,内容如下:
#!/bin/bash DIR=$(dirname "$0") LD_LIBRARY_PATH="$DIR/bundle/lib" "$DIR/my_project"
- 给脚本添加执行权限:
chmod +x run_my_project.sh
之后用户直接运行该脚本即可启动程序。
方法2:修改可执行文件的rpath
用patchelf工具修改程序的默认库搜索路径,让它自动识别bundle/lib:
- 先安装
patchelf(若未安装):
sudo apt install patchelf
- 执行命令修改可执行文件的rpath:
patchelf --set-rpath '$ORIGIN/bundle/lib' my_project
修改后的可执行文件可直接运行,无需额外设置环境变量。
方法3:重新构建项目
先清理旧构建文件,再重新编译发布版,确保库文件被正确打包:
flutter clean flutter build linux --release
内容的提问来源于stack exchange,提问作者Burhanuddin Merchant
相关产品推荐
相关产品推荐

