修改QMAKE_CFLAGS_RELEASE = -O2 -MD 为QMAKE_CFLAGS_RELEASE = -O2 -MT
Windows下静态编译QT程序
原创
©著作权归作者所有:来自51CTO博客作者mypyg的原创作品,请联系作者获取转载授权,否则将追究法律责任
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_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库的机器上也可以运行了。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
QT静态编译
QT静态编译
desktop sql 静态编译 多核 sqlite -
QT静态编译程序(Mingw编译)
在默认情况下,用QtCreator编译程序时,使用的是动态编译,这就导致编译好的程序在运行时需要另外加\
qt perl 开发语言 python 环境变量