目前Cocos2d-x中有一个VS2012的解决方案:build/cocos2d-win32.vc2012.sln。因为VS2013可以打开VS2012的项目,所以Cocos2d-x同时支持VS2012和VS2013。当然Cocos2d-x希望可以尽可能地支持更多的VS版本,但是我们遇到了一个问题,[color=#ff0000]不同的VS版本并不能使用相同的预编译库[/color],具体来说是:
[list=1][li]1.基于VS2012 C++ runtime编译的预编译库在VS2013中无法链接[/li][li]2.基于VS2013 C++ runtime编译的预编译库在VS2012中无法链接[/li][/list]
这就是[color=#ff0000]为什么我们在引擎中使用了Box2D,Spine和其他库的源码[/color]。
如果我们想要使用Box2d和Spine的预编译版本,而且同时支持VS2012和VS2013。那么我们不得不提供所有预编译库的两个版本,然后从以下的两个选择中挑一个:
[list=1][li]1.运行时决定加载哪个版本的库[/li][li]2.为VS2013另外创建一个解决方案文件,叫build/cocos2d-win32.vc2013.sln,然后链接相应的库。这意味着,如果你使用VS2012,你应该打开build/cocos2d-win32.vc2012.sln,如果你使用VS2013,你应该打开build/cocos2d-win32.vc2013.sln。[/li][/list]
但是[color=#ff0000]我们觉得应该移除对VS2012的支持,而是仅仅支持VS2013[/color]。因为:
[list=1][li]1.VS2013 community版本是免费的。[/li][li]2.VS2013比VS2012对C++11的支持更好。[/li][li]3.我们可以节省更多的时间来维护VS的两个版本,这意味着我们有更多的资源可以做其他有意义的事(不用提供两个版本的库,不用做相关的测试,不用添加jenkins来支持更多的VS版本)[/li][li]4.这也会更加方便开发者贡献代码,比如添加/移除一个文件时,就不用修改多个项目设置。[/li][/list]
[color=#ff0000]英文论坛讨论传送门:http://discuss.cocos2d-x.org/t/how-about-remove-supporting-vs2012/19208[/color]
[color=#ff0000][/color]
[color=#ff0000]欢迎提出你们的宝贵意见。待引擎确定方案后从提出有效意见的童鞋中抽取两名,赠送CocoaChina2015精美台历一本~[/color]
[color=#ff0000][/color]
[color=#ff0000][attachment=84071]
[/color]


