本文由@呆代待殆原创,转载请注明出处:http://www.cnblogs.com/coffeeSS/
当博主准备把cocos工程用cocos命令行编译出来的时候,报出了MSB8020的错误,具体如下。
![](https://i-blog.csdnimg.cn/blog_migrate/0b18eb75f426832584e818a41b8e541e.png)
读完错误提示可知是因为编译工程需要的工具集是v110(vs2012的默认工具集),而博主使用的是vs2013,自带的工具集是v120版本的,所以无法使用,提示中给出的办法是点击project(alt+p)菜单或者右击vs左边的解决方案,然后点击"Update VC++ Projects..."选项对解决方案进行升级,然而博主并没有找到这个选项,所以只能找别的解决办法。
在热情网友的帮助下,找到以下两个解决办法。
1,右击vs里报错的项目的名字选择属性,然后查看平台工具集那一项,选择使用v110工具集,然后重新编译整个工程,注意使用v110工具集的时候,
某些c++ 11的新特性得不到支持,可能会报很多错,要细心修改原代码。
![](https://i-blog.csdnimg.cn/blog_migrate/577daf422db884899bb081d990465948.png)
2,如果发现自己的vs并没有v110工具集,还可以直接手动修改出错的项目的.vcxproj文件,修改方式如下。
找到配置文件中的这一行。
![](https://i-blog.csdnimg.cn/blog_migrate/8a9f5c4b3ea1df6d6ff29f05b51a3dfd.png)
把所有上面的文字都换成下面这个样子。
![](https://i-blog.csdnimg.cn/blog_migrate/6e48a0238d14d8d3af514c80c5568061.png)
然后保存。
之后就可以用v120编译项目了,但是这个时候仍然用的是v110工具集的标准,所以有些c++ 11的新特性会失去支持从而导致原本正常的程序报错,需要我们自己修改源代码。
最后我想说的是,这个编译指令得到的一堆文件和用vs上
这个按钮编译出来的文件没有什么区别,如果仅仅是想得到可运行的exe,直接在vs内部编译就可以了,但是要注意,不论你用的是vs编译还是cocos命令行编译得到的exe,
你直接运行exe大部分情况下都会报错,这是因为缺少了resource文件夹里的资源文件,你要手动把resource文件内的(不是resource文件夹)文件都复制到编译出来的exe同目录下才能使exe正常运行。
![](https://i-blog.csdnimg.cn/blog_migrate/89e92808c888788e6998fc3fb80a9237.png)