用了cc2dx后,vs一直崩溃,我也快了

是这样的,我开始用vs2010,装了cc2dx模板开发,一开始好好地,突然就有一天开机后,程序都跑不起来了,运行最后报错:

程序“ HelloWorld.exe: 本机”已退出,返回值为 0 (0x0)。

百般折腾,发现重新生成libcocos2d的最后会有个报错:

1>PreLinkEvent:
1>  16 File(s) copied
1>Link:
1>     正在创建库 D:Applecocos2d-1.0.1-x-0.13.0-betaDebug.win32libcocos2d.lib 和对象 D:Applecocos2d-1.0.1-x-0.13.0-betaDebug.win32libcocos2d.exp
1>LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>Manifest:
1>  正在删除文件“Debug.win32libcocos2d.dll.embed.manifest”。
1>LinkEmbedManifest:
1>     正在创建库 D:Applecocos2d-1.0.1-x-0.13.0-betaDebug.win32libcocos2d.lib 和对象 D:Applecocos2d-1.0.1-x-0.13.0-betaDebug.win32libcocos2d.exp
1>LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>  cocos2d-win32.vcxproj -> D:Applecocos2d-1.0.1-x-0.13.0-betaDebug.win32libcocos2d.dll
1>FinalizeBuildStatus:
1>  正在删除文件“Debug.win32libcocos2d.unsuccessfulbuild”。
1>  正在对“Debug.win32libcocos2d.lastbuildstate”执行 Touch 任务。
1>
1>生成成功。
1>
1>已用时间 00:02:00.62
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========

再来HelloWorld就退出了。

网上说的有关4098的错误方法我都试过无效。

最奇怪的是:我重新安装了cocos2dx(重新解压),重新打开编译跑还是一样的问题,所以我怀疑是我VS也报废了。干脆找了上个周末重装。重装vs2008后就好了。

最最最晕倒的事,用了一段时间vs2008,又那样了!今天只好又重装一遍vs2010,打算跑几下没问题干脆做过ghost的,没想到跑了两三次项目,半天功夫,又给我“返回值0退出”了……

崩溃,来来回回装了3次vs了。到底是cc2dx的问题还是我系统问题?难不成还得会mac开发cc的版本了

好吧,我终于找到结症所在了,是cocos2dx已报的一个bug,我也算来确认一下吧:
http://www.cocos2d-x.org/boards/12/topics/7268
即是说:如果使用双显示器,cocos2d-x在

CC_BREAK_IF(EGL_FALSE == eglChooseConfig(eglDisplay, aConfigAttribs, &eglConfig, 1, &iConfigs)  || (iConfigs != 1));

就会导致iConfigs=0而失败退出。
即使我调成只用一个显示器也不行,只要接了双显示器就是这样的。最后只有拔掉外接才行。

不过很好奇的一点,前几天晚上我也是双显示器模式,vs2008用得好好的。

附带上面警告的解决方法:

http://msdn.microsoft.com/en-us/library/Aa267384

我根据ms加了:
/NODEFAULTLIB:libc.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
或者
/NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
都不行
就加:

/VERBOSE:LIB /NODEFAULTLIB:libcmt.lib 

就可以了

郁闷,重装了2次

希望cocos2dx的团队看一下这个问题哦,让我的显示器早日上岗