Qt 5.0 程序的静态编译问题
-
用 Qt 5.0 写了一个小东西,如果采用动态编译的方法每次都需要把那一堆 *.dll 带上实在不方便(说实在真闹不明白为什么在 Qt 4 下面只要 QtCore4.dll 和 QtGui4.dll 的东西一改到 Qt 5 下面需要那么一堆 *.dll。。。),考虑使用静态编译解决这个问题,但是到网上一搜全是讲怎么静态编译Qt库本身的,只好到这里问一下,望能有高人指点。
PS:所使用的 Qt 5.0 是老师买的商业版,静态编译是不违反协议的,不用讨论这个
-
静态编译在QTCN中是一个热门的话题,你可以凑个热闹。http://www.qtcn.org/bbs/thread-htm-fid-68.html
-
[quote author="jiangcaiyang" date="1374727567"]静态编译在QTCN中是一个热门的话题,你可以凑个热闹。http://www.qtcn.org/bbs/thread-htm-fid-68.html[/quote]
基本上都是讲怎么静态编译Qt库本身的,我想知道的是将 Qt 中相关部分静态编译到我自己写的程序中,使得发布程序时不需要带上那些 Qt 的 dll 的方法。。。
-
只有静态编译Qt库,才可以利用这些库静态编译你的应用程序。不相信的话你下载一个静态编译的版本看看。
-
(1)下载qt源代码
(2)编译源代码并且安装
(3)编译源代码的时候要加上 static选项(另外要禁用某些模块,因为有些模块不支持静态编译)
(4)在qtcreator里面设置编译工具,把编译器那些,设置为你自己编译的静态qt里面的工具
(5)在项目的pro文件里面,增加一个static参数,然后编译代码,才能实现静态编译 -
至于你说的dll问题,主要是因为你用到的模块比较多。
你使用的模块越多,需要的dll就越多。 -
前几天发布的问题缠了我很久,我去网上找静态编译啊什么的都不够详细
后来发现:
Mac Qt 有个叫做macdeployqt的工具
他们可以带上需要的类库重新打包应用程序,超级好用。
Windows 上似乎叫做windeployqt你可以搜一下虽然我用mac的,但是下面的链接可能对你有帮助:
http://www.waitingfy.com/archives/1242?utm_source=tuicool