网站首页 > 技术教程 正文
我们在linux下编写代码时,会用到一些额外的库(动态或者静态),如小编在qt下写opencv的程序,是在电脑上,项目需求,需要将其移植到嵌入式板子上。小编这里提供一种简单的方法,将我们在电脑上开发好的程序,可以打包复制到其他只要是Linux系统就可以运行,不需要再配置复杂的开发环境。
方法一:通过sh脚本
这里小编用qt下写的一个opencv程序示例:
1.利用qt生成可执行文件,使用release的方式编译出可执行文件,然后新建一个文件夹,将可执行文件拷贝进去备用。
小编这里生成的文件是这样的:
2.利用脚本文件
2.1新建文件
2.1.1pask.sh
2.1.2test2.sh
这个脚本文件名必须和要发布的程序名字相同,所以为 Server
新建文件后,文件夹包含内容如下:
2.2 添加脚本
向pack.sh文件里添加以下内容:
#!/bin/sh exe="test2" #你需要发布的程序名称 des="/home/shang/test" #创建文件夹的位置 deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }') cp $deplist $des
然后向test2.sh文件里添加以下内容(内容不需要更改):
#!/bin/sh appname=`basename $0 | sed s,\.sh$,,` dirname=`dirname $0` tmp="${dirname#?}" if [ "${dirname%$tmp}" != "/" ]; then dirname=$PWD/$dirname fi LD_LIBRARY_PATH=$dirname export LD_LIBRARY_PATH $dirname/$appname "$@"
执行脚本
终端进入文件夹目录,运行:
sh ./pack.sh
可执行文件依赖的链接库将会拷贝到所在的目录,如图:
打包发布
将上面整个文件夹,复制拷贝到其他linux系统,在文件夹路径内终端运行:
./test2.sh
方法二:利用linuxdeployqt将程序打包成应用
ps:这也是笔者更喜欢的方法,原因可看下图,整个程序包结构更加简洁和清晰:
1、下载linuxdeployqt
github网址:
https://github.com/probonopd/linuxdeployqt/releases
2、把下载的文件放入 /usr/local/bin 内,并执行如下命令使其可以运行
chmod 777 linuxdeployqt-6-x86_64.AppImage
3、把qmake的路径添加到环境变量中
sudo gedit /etc/profile?在文件末尾添加:export PATH="/home/shang/Qt5.11.2/5.11.2/gcc_64/bin:$PATH"
具体的路径和qt版本需要自己查看
4、假如 receiver是QT release出来的可执行文件,执行如下语句可复制依赖的文件到当前目录
linuxdeployqt-6-x86_64.AppImage receiver -appimage
至此就可以通过双击apprun或者receiver均可拷贝到其它任意一台linux电脑运行程序啦。
- 上一篇: VPN安装包“引狼入室”
- 下一篇: 绿色地狱steam中文版
猜你喜欢
- 2024-12-01 绿色地狱steam中文版
- 2024-12-01 VPN安装包“引狼入室”
- 2024-12-01 腾讯大佬详细讲解Java 启动exe程序,传递参数和获取参数
- 2024-12-01 西门子组态软件wincc V7.5使用--执行exe文件和关闭exe文件
- 2024-12-01 IP地址修改,不快怎么行
- 2024-12-01 常见钓鱼文档的种类有哪些?
- 2024-12-01 直接运行内嵌exe文件的另一种方法
- 2024-12-01 如何打包一个QT程序(Windows和linux)
- 2024-12-01 卸载的exe文件怎么恢复 电脑卸载exe文件的恢复技巧
- 2024-12-01 QT的跨平台开发问题(5)彻底解决中文乱码
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)