linux下QT发布程序双击打不开解决方法

Qt打包:

Linux系统下Qt程序的打包 - 青衣守旧人 - 博客园

 

阶段一

右键可执行程序,选择属性,可执行程序类型如果是“application/x-sharedlib”,在QT的pro文件添加如下内容,清除后重新编译release版;

QMAKE_LFLAGS += -no-pie

此时的可执行程序是“x-executable”,双击看能否启动。 

阶段二
经过阶段一如果还是打不开,此时可以写个小demo,新建一个带界面的工程,什么都不做,编译后看是否能双击打开,如果能打开,但复杂一点的工程打不开,说明是环境问题;
原因分析
双击在图形界面,环境是文件管理器,使用./是在命令行界面,也就是shell脚本,shell启动时会执行一些脚本,改变环境变量;复杂工程如果依赖三方库,直接双击可执行是打不开的。
解决方法
修改全局环境变量,把可执行程序当前路径加到如下配置文件(依赖库一般和可执行程序在同级目录):
 

命令:sudo vim /etc/ld.so.conf

           

将第三方库放到和可执行文件一个目录中,并进行如下操作:

打开 /etc/profile文件:

gedit /etc/profile

在文件的末尾添加语句:

 

执行下面指令,使设置立即生效:

sudo ldconfig

再双击可执行程序,正常可以打开。 

阶段三

项目工程太大再加上电脑上有其他软件修改环境变量,经历这些操作可能还是不能双击打开,下面介绍通过shell脚本双击启动,在用户看来形式上一样。
1、编辑一个shell脚本,例如是startApp.sh,放在可执行文件目录,内容如下:

#!/bin/bash
#workdir
workdir=$(cd $(dirname $0); pwd)
cd $workdir
./AssistantMainInterface

此时可以在终端./startApp.sh运行程序了,但双击还是打不开。

2、设置shell脚本双击可打开
打开文件管理器-编辑-首选项-行为,勾选“打开可执行文本文件时运行它们”;
右键startApp.sh,选择权限选项卡,勾选允许作为程序执行文件,此时双击“startApp.sh”可直接执行程序;

3、创建桌面快捷方式
为了看上去更像一个程序,创建一个带图标的桌面快捷方式;
在桌面创建文件/root//Desktop/zhushou.desktop,编辑vim zhushou.desktop:

[Desktop Entry]
Encoding=UTF-8
Name=ZhuShou
Comment=tool
#Exec=/root/IPDSys/bin/config/shell/shell_410/rzt_tool_start.sh
Exec=/root/桌面/app1/startApp.sh
Icon=/root/桌面/app1/app.png
Terminal=false
StartupNotify=true
Type=Application
Name[zh_CN]=ZhuShou

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值