Linux下如何发布QT程序

s06313125 2012-05-22 10:54:17
在LINUX下用QT写了一个程序,现在要放到没有装QT的电脑上运行,请问怎么发布QT程序?
谷歌了一些,没看懂,来这里找大侠们讲解一下。
请说的详细一点。
...全文
1215 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
gao-wei-89 2013-09-16
  • 打赏
  • 举报
回复
静态编译得现将库用静态编译了,在用其编译程序
sunday921011 2013-09-14
  • 打赏
  • 举报
回复
引用 9 楼 dext 的回复:
方法一,也是最简单的,静态连接编译。怎么没有人想到这个? 方法二,动态链接的话,需要将你的可执行文件和so文件放在一块儿,然后写一个脚本,以后就运行脚本就可以了。文件名要相同 后加 .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 "$@"
参考链接 Deploying an Application on X11 Platforms BTW: 最近在研究 CSDN 上的舆论导向作用。 大家的回帖跟贴 会有向导性。 如果一楼提及静态链接的话,很多人都会提及。 看来一楼的作用还是很巨大的,当然还有 能者的导向性。比如 zhu_xz
你好 我在用这个脚本的时候 出现了这个问题 [sunday@sunday rms-flux]$ sudo chmod +x rms-flux.sh [sunday@sunday rms-flux]$ sudo sh rms-flux.sh rms-flux.sh:行10: /run/media/sunday/000B9D8C000C8A68/rms-flux/./rms-flux: 权限不够 请问如何解决?
dext 2012-05-23
  • 打赏
  • 举报
回复
搜一下吧,有关Qt 最著名的讨论之一就是 如何静态编译。

[Quote=引用 10 楼 的回复:]
静态编译的话,该怎么做呢?我当时安装的软件是qt-sdk-linux-x86-opensource-2010.05.1.bin ,在哪边弄静态编译
[/Quote]
s06313125 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

方法一,也是最简单的,静态连接编译。怎么没有人想到这个?
方法二,动态链接的话,需要将你的可执行文件和so文件放在一块儿,然后写一个脚本,以后就运行脚本就可以了。文件名要相同 后加 .sh
脚本如下。
Perl code

#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`

dirname=`dirname $0`
tmp="${di……
[/Quote]
静态编译的话,该怎么做呢?我当时安装的软件是qt-sdk-linux-x86-opensource-2010.05.1.bin ,在哪边弄静态编译
zhu_xz 2012-05-22
  • 打赏
  • 举报
回复
一个方法是把你的程序,以及用到的Qt库,打包成一个tar然后发布
另一个方法是把你的程序发布成deb或者rpm等格式的,然后包管理系统会处理依赖关系
xiebin133 2012-05-22
  • 打赏
  • 举报
回复
恩。把QT发布的那几个库一起拷过去就可以了,其他的看你用到什么模块,就把那个模块下的库一起拷过去就好了。
dext 2012-05-22
  • 打赏
  • 举报
回复
方法一,也是最简单的,静态连接编译。怎么没有人想到这个?
方法二,动态链接的话,需要将你的可执行文件和so文件放在一块儿,然后写一个脚本,以后就运行脚本就可以了。文件名要相同 后加 .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 "$@"


参考链接
Deploying an Application on X11 Platforms

BTW: 最近在研究 CSDN 上的舆论导向作用。 大家的回帖跟贴 会有向导性。 如果一楼提及静态链接的话,很多人都会提及。
看来一楼的作用还是很巨大的,当然还有 能者的导向性。比如 zhu_xz
Red_angelX 2012-05-22
  • 打赏
  • 举报
回复
qt几的 qt3就一个mtqt库
qt4还要有core gui几个库拷过去就行
s06313125 2012-05-22
  • 打赏
  • 举报
回复
在LINUX下用QT写了一个程序,现在要放到没有装QT的电脑上运行,同样是Linux系统,请问怎么发布QT程序?
谷歌了一些,没看懂,来这里找大侠们讲解一下。
请说的详细一点。
s06313125 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

别的电脑是linux系统还是windows系统,如果是windows系统,你在windows上也装QT,然后把代码拿过来编译一个release版本,然后带上QT要发布的那几个库,然后在看你的程序用到了上面模块, 如果用到数据库就带上数据库的那些dll就可以了。。
[/Quote]

在Linux系统下,那台机器不装QT,该怎么做呢
xiebin133 2012-05-22
  • 打赏
  • 举报
回复
别的电脑是linux系统还是windows系统,如果是windows系统,你在windows上也装QT,然后把代码拿过来编译一个release版本,然后带上QT要发布的那几个库,然后在看你的程序用到了上面模块, 如果用到数据库就带上数据库的那些dll就可以了。。
xiachm 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
另一个方法是把你的程序发布成deb或者rpm等格式的,然后包管理系统会处理依赖关系
[/Quote]
+1
dinjay 2012-05-22
  • 打赏
  • 举报
回复
LS+1
还有个办法,你可以先ldd看下你的程序依赖什么QT的库,qt库都是qt前缀打头的,然后写个sh脚本,将qt的库部署到系统的usr/lib目录下

21,466

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧