Qt源码中lupdate和翻译工具linguist采用MT编译后遇到的问题

这几天接触了Qt,网上对比的mfc和Qt的种种优劣都看了个遍.最终还是觉得Qt比较强大一点(界面设计器上比较直观的表现了出来).

看了网上的教程下载了Qt的源代码进行编译.configure的参数还真是多,大体看了下没有找到配置使用MD还是MT编译的选项.网上搜了下要改mkspecs目录下编译平台(我用的是win32-msvc2008)目录里的qmake.conf文件

按说明将MD改成了MT编译,一切顺利.至于为什么非要用MT,我觉得程序发布的时候不一定每台机器都有VC9的运行时库,而且部署也需要额外的操作.总是就是想偷懒一下.

编译完开始写测试代码.因为当初用Qt的原因还有他的多语言支持比较方便,所以迫不及待的开始创建新的ts文件,lupdate...

结果lupdate直接崩掉,手动无参数运行也崩掉.很奇怪

打开linguist只要加载ts文件同样崩掉.

用各种方式调试查找为何崩溃无果.

折腾一晚上突然想起几天前看到的一篇文章(参考http://topic.csdn.net/t/20050502/16/3980923.html)说是在不同的模块里释放非本模块malloc的内存会导致崩溃.

换回MD编译选项一切正常.

至于为何崩溃,到底是不是因为上述原因导致的尚未进一步研究.

记录一下,以便以后用到少走弯路.

原文地址:https://www.cnblogs.com/Athrob/p/2522686.html