坚持QtQML,坚持移动互联网

http://www.qtcn.org/bbs/u/121778  [收藏] [复制]

toby520

将QtCoding进行到底,做Qt的宠儿

  • 89

    关注

  • 164

    粉丝

  • 3579

    访客

  • 等级:精灵王
  • 身份:论坛版主
  • 总积分:1262
  • 男,1986-11-17

最后登录:2024-05-10

更多资料

日志

Window下静态编译 VS2008

2011-09-26 12:16
Windows下编写的QT程序拿到别的机器上运行时总是要打包DLL,编译成静态程序更方便一些。

首先要编译一个静态的Qt库,因为ms的连接器需要.lib库,而qt自带的是.a库,所以要下载代码自己编译了。
编译前先修改一下spec:(下面是对于vs2008,如果是2005,则去找win32-msvc2005)
mkspecs ----> win32-msvc2008 ----> qmake.conf
修改QMAKE_CFLAGS_RELEASE = -O2 -MD 为QMAKE_CFLAGS_RELEASE = -O2 -MT
修改QMAKE_CFLAGS_DEBUG 为  = -Zi -MTd
修改这儿是因为Qt configure时的static选项对核心库无效,核心库仍然是动态链接的。另外-Zi也可以去掉,不生成pdb文件,如果不调试Qt内部就没必要要。
执行:
configure -release -static -fast -qt-sql-odbc -qt-sql-sqlite -no-webkit
nmake
等待个1,2小时的编译,生成一堆的.lib文件。
如果需要webkit就不要加-no-webkit参数

在vs中修改工程的属性:
配置属性 ----> C/C++ ----> 代码生成 ---->运行时库 ----> /MT or /MTd

这样最终生成的程序就是静态程序了,拿到没有QT库的机器上也可以运行了。
分类:默认分类|回复:0|浏览:1605|全站可见|转载
 

Powered by phpwind v8.7 Certificate Copyright Time now is:05-10 21:25
©2005-2016 QTCN开发网 版权所有 Gzip disabled