fender0107401 发表于 2016-07-07 16:49

问一个Qt程序发布的问题。

我在Win7上面写了一个Qt的程序。

然后我把编译的二进制文件,还有Qt的库(就是那些dll)放在一个文件夹下面,然后就能用了。

现在我打算把这个东西发给我的同事用,但是在同事的电脑上面运行的时候,发现提示缺少vcruntime之类的。

问题:Win下面的Qt程序,有什么比较规范的打包发布方法吗?

fender0107401 发表于 2016-07-07 16:55

使用depends.exe能看见执行文件需要的dll。

有什么办法能让程序自动把这些东西都提取出来吗?

hellioncu 发表于 2016-07-07 17:02

你是vc编译的吧,vc安装好有vcredist_x86/x64.exe。要不你静态链接vc的库吧

fender0107401 发表于 2016-07-07 19:25

本帖最后由 fender0107401 于 2016-07-07 19:25 编辑

hellioncu 发表于 2016-07-07 17:02 static/image/common/back.gif
你是vc编译的吧,vc安装好有vcredist_x86/x64.exe。要不你静态链接vc的库吧

我试试。

实在是不熟悉Win下面的开发。

zhujiang73 发表于 2016-07-08 16:07

回复 2# fender0107401


       按我的经验,把编译的二进制文件还有程序依赖的所有dll 复制到一个文件夹下面,打个 zip 包发给“用户”就行了。 {:yxh45:}

       当然高级一些要用到 windows 下的安装包生成工具,比如这个: https://sourceforge.net/projects/nsis/不过其实我也没用过这个。 {:yxh119:}

fender0107401 发表于 2016-07-08 23:13

zhujiang73 发表于 2016-07-08 16:07 static/image/common/back.gif
回复 2# fender0107401




我就是希望能有个程序帮我把所有的dll都给copy出来,自己弄的话,太费劲了。:em16:

fender0107401 发表于 2016-07-08 23:14

hellioncu 发表于 2016-07-07 17:02 static/image/common/back.gif
你是vc编译的吧,vc安装好有vcredist_x86/x64.exe。要不你静态链接vc的库吧

也是也不是。

我确实是安装了VS2015,但是编译的时候是用Qt Creator来编译的。

Qt Creator应该是调用了VS2015里面的工具链。

action08 发表于 2016-07-09 00:21

我就是希望能有个程序帮我把所有的dll都给copy出来,自己弄的话,太费劲了。

这个有办法吗??

zhujiang73 发表于 2016-07-09 00:42

fender0107401 发表于 2016-07-08 23:13 static/image/common/back.gif
我就是希望能有个程序帮我把所有的dll都给copy出来,自己弄的话,太费劲了。


      "使用depends.exe能看见执行文件需要的dll",都知道 dll 的名字了最多写个脚本 copy 一下,本人一般都是手工拷贝。 {:yxh93:}


      另外 Visual Studio Tools里有一个命令行工具 dumpbin , “ dumpbin/dependents   d:\test.exe ”可以导出程序依赖的 dll 列表。

sxcong 发表于 2016-07-21 13:38

Qt在windows下有两个环境的包,一个是vc的,从2008到2015.另一个是mingw的。你发布的时候,一是带qt自己的dll,另外就是要带vc或mingw的。
VC有个工具 DEPENDS.exe 可以看带哪些dll。其实不用工具也有办法:在一台没装开发环境的机器上运行,提示少哪个dll,就搜索复制一个。
页: [1]
查看完整版本: 问一个Qt程序发布的问题。