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


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.