Windows下静态编译QT程序

Windows下静态编译QT程序

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库的机器上也可以运行了。

你可能感兴趣的:(Windows下静态编译QT程序)