QT发布的问题

male110 2010-10-16 10:01:51
QT生成的EXE文件,依赖于QT的几个DLL,没有这些DLL运行不来。
有没有办法,让QT可以你静太MFC那样生成一个EXE就能运行的?
也就是QT如何静态编译。
我用的是VS2008
...全文
159 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pp0354030 2010-11-01
  • 打赏
  • 举报
回复
网上有静态编译的方法,不过都不是很详细,我试过一次,没编译出来!
blackfacewa 2010-11-01
  • 打赏
  • 举报
回复
藐视比较满发的
强天放 2010-11-01
  • 打赏
  • 举报
回复
你用的Qt什么版本?不成功,和版本有时候也有关系的
我用4.6.2的时候做静态编译,参考的是这篇文章http://www.cnblogs.com/mcxiaoke/archive/2010/05/12/1733801.html,测试成功。


VS2005静态编译
(VS2008编译同理,启动相应的命令行,设置相应的目标平台,修改相应的配置文件)
1.设置VS2005的环境变量
2.设置目标平台
set QMAKESPEC=win32-msvc2005
3.修改mkspecs/win32-msvc2005目录下的配置文件qmake.conf
将下面两行:
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_DEBUG = -Zi -MDd
修改为:
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_DEBUG = -Zi -MTd
(D是指dynamic,T是指static,d是指debug)
4.进入QTDIR目录,运行配置,生成Makefile文件
set QMAKESPEC=win32-msvc2005
configure -platform win32-msvc2005 -release -no-exceptions -opensource -static -fast -qt-sql-sqlite -plugin-sql-sqlite -no-qt3support -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -no-webkit -qt-style-windowsxp -qt-style-windowsvista
5.运行运行nmake /I /K

经过这样编译的Qt库不依赖于任何Dll文件(如微软的CRT运行时库),使用此Qt库编译Windows平台下的程序发布时不需要附带任何额外的Dll文件
dbzhang800 2010-11-01
  • 打赏
  • 举报
回复
1. 不需要Qt4 的动态库。容易,configure 时,只需添加 -static 选项即可
2. 不需要 Qt4 和编译器(比如VC9)的动态库,也可以实现
3. 不需要任何动态库。这个就不清楚windows的 kernel32 等核心库有没有静态版本了。

可参考
http://hi.baidu.com/cyclone/blog/item/25b262d9337a172310df9b78.html
lefttime 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 male110 的回复:]

当然可以,我是问有没有办法生成的不需要任何DLL
就像MFC有静态,动态。
静态的就不用任何DLL
[/Quote]
可以;
不过这之前你得有Qt的静态库 :)
SwingCodest 2010-11-01
  • 打赏
  • 举报
回复
应该可以吧。
male110 2010-10-16
  • 打赏
  • 举报
回复
当然可以,我是问有没有办法生成的不需要任何DLL
就像MFC有静态,动态。
静态的就不用任何DLL
lasvegas_xiang 2010-10-16
  • 打赏
  • 举报
回复
必须的dll加上就可以了
kapoo-pai 2010-10-16
  • 打赏
  • 举报
回复
复制到exe目录下不就行了了吗
qt4.dll, qtcore4.dll

16,240

社区成员

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

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