一、重要参考文章
1、先看【文章1】 http://www.cnblogs.com/elect-fans/archive/2012/03/29/2422816.html
2、再看【 文章2】http://blog.csdn.net/seicany/article/details/26238653
二、修正bug
经验证:
2.1、【文章1】 中 “MD,MDd对应改成MT,MTD” 应改为 "MD,MDd对应改成MT,MTd”
2.2、【文章2】 中 "应该把最后的-mp去掉"是有问题的,具体原因请百度mp
2.3、 仍然发现link时报错 :类似”__initp_misc_invarg 已经在 LIBCMTD.lib(invarg.obj) 中定义“,具体日志没留下,但大概意思差不多。
【解决方案】:qmake.conf 中 ”QMAKE_LINK = link“ 后 增加” /FORCE:MULTIPLE“ 变为
QMAKE_LINK = link /FORCE:MULTIPLE
2.4、 要想编译快一点(我大概用了不到20分钟)
4.1把 qt目录下的demo 和 example 先暂时移走
4.2 因为我不需要 windowsvista(vista 估计没人用吧), motif cde(这两个是linux上的东西,我只在windows下用)
所以删除 【文章1】 中的部分config内容 变为:
configure -debug-and-release -fast -static -platform win32-msvc2010 -no-qt3support -script -scripttools -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -qt-sql-sqlite -plugin-sql-sqlite -qt-style-windows -qt-style-windowsxp -qt-style-plastique -qt-style-cleanlooks -nomake demos -nomake examples -nomake docs –mp
4.3 为了节约时间我只编译了qt目录下的src目录,即在configure完成后,cd 到qt根目录的src子目录下执行nmake
5、以上在win10 + vs2010 + qt-opensource-windows-x86-vs2010-4.8.6 亲测完成静态编译
后续新建工程还有待验证。
三、遗留问题
有人说解决上文2.3节中的问题可以使用在qmake中用以下方式,我对比了一下就是多了个-GL,还未研究,不知是否正确。
QMAKE_CXXFLAGS_RELEASE = -O2 -MT -GL
QMAKE_CXXFLAGS_DEBUG = -Zi -MTd
四、以下是引用部分