在ubuntu下打包QT程序及相关的依赖库到一个无QT环境的干净容器中运行,这将这过程分为7步;

第一步:把Qt Creator设置为Release模式,点击运行后在build文件夹下中找到可执行程序(无后缀的文件就是,例如程序名为my_project);

第二步:将此文件拷到一个干净的文件夹下(例如my_release),在此文件中新建'lib'和'bin'文件夹,按下 Crtl+Alt+T按钮弹出控制台,输入“ ldd ./my_project | awk ‘{print $3}' |xargs -i cp -L {} my_release/lib", 除此之外,可能会缺少libQt5DBus.so.5及libQt5XcbQpa.so.5(需要将对应的libQt5XcbQpa.so.(版本)改名为libQt5XcbQpa.so.5),需要去安装路径下寻找然后使用sudo权限拷贝到my_release文件下的lib中;

第三步:此时文件夹下既有可执行文件也有可执行程序连接的基本动态库,但是还有部分库不在,进入安装Qt的文件夹中找到 plugins/platforms(Qt需要的跨平台的相关库),”Crtl+Alt+T"打开控制台,输入"sudo cp -r ./platform ~/ my_release/bin"(~/指用户目录),再次进入到Qt安装目录plugins目录中找到imageformats文件夹,

然后输入"sudo cp -r ./platform ~/ my_release/bin"(此文件夹中的库用于加载各种图片资源,如有设置gif等资源不生效时即缺失这些库);

第四步:将可执行程序my_project移入'bin'文件夹中;

第五步:现在撰写执行脚本:按下”Crtl+Alt+T"弹出控制台,

输入”gedit my_project.sh"然后输入

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib

./bin/task_scheduling_visual "$@"   

第六步:此时的文件结构为:

 第七步:将此my_release文件夹安装到其他无Qt环境的linux系统的裸机下,进入my_release文件夹下,“Ctrl+Alt+T”弹出命令行输入"chmod +x ./my_project.sh"点击回车给脚本增加权限,然后输入"./my_project.sh"即可看到打包的程序开始运行;

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐