首页 > 代码库 > cocos2dx - wp8项目配置遇到的问题及解决方案

cocos2dx - wp8项目配置遇到的问题及解决方案

   在这篇文章中,我们将来构建cocos2dx-wp8的环境配置,首先我们需要在windows+vs环境下安装cocos2dx。

   如果你对windows+vs环境下安装cocos2dx还不熟悉,请参考:Win7(64位)下 vs2012 + cocos2dx2.2配置

   然后我们找到E:\cocos2d-x-2.2.5\samples\Cpp\HelloCpp\proj.wp8-xaml(我这里cocos2dx安装在E盘)下面的HelloCpp项目文件,在VS中打开。

   我们会看见HelloCpp和HelloCppComponent两个项目 。

 

  我们移除HelloCppComponent项目Classes下面所有c++头文件和源文件。接下来把win32项目编写好的代码类添加到HelloCppComponent的Classes目录下,把win32项目Resources下的资源文件添加到HelloCpp下的Assets目录中。

  生成->编译。成功!!

  然后点击调试进行部署,

  问题来了:

 

错误描述:fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "pch.h"”?

错误分析:
    此错误发生的原因是编译器在寻找预编译指示头文件(默认#include "pch.h")时,文件未预期结束。没有找到预编译指示信息的头文件"pch.h"。
    (因为工程中的每个cpp文件属性默认都是使用预编译头(/YU)的,但是添加的第三方文件并没有 #include "pch.h" 预编译指示头,所以编译器在此cpp文件中一直到末尾都没有找到它)
解决方式:
1) 在解决方案资源管理器中,右击相应的.cpp文件,点击“属性”
2) 在左侧配置属性中,点开“C/C++”,单击“预编译头”
3) 更改右侧第一行的“创建/使用预编译头”,把选项从“使用预编译头(/Yu)”改成“不使用预编译头”
4) 注:每一个报错的.cpp都要如此更改哦~辛苦一下呗~
 
 再次生成解决方案。
 如果出现错误  error LNK1181: 无法打开输入文件“E:\cocos2d-x-2.2.5\samples\Cpp\HelloCpp\proj.wp8-xaml\WP8\Win32\Debug\libcocos2d\libcocos2d.lib” E:\cocos2d-x-2.2.5\samples\Cpp\HelloCpp\proj.wp8-xaml\HelloCpp\HelloCppComponent\LINK HelloCppComponent

  那么找到E:\cocos2d-x-2.2.5\WP8\Win32\Debug目录下,把下面的文件夹复制到E:\cocos2d-x-2.2.5\samples\Cpp\HelloCpp\proj.wp8-xaml\WP8\Win32\Debug即可

 

 okay~

 模拟器上出现了熟悉的hello world 。

 然后准备真机调试的时候,

 wait!!wait!! what‘s this :

 

   这是什么原因呢 !!

   于是乎这种百度,都没有找到好的解决办法。然后怀着无奈的心情FQ,谷歌(不得不承认,谷歌大法好)终于找到原因了:

   http://stackoverflow.com/questions/3563756/fatal-error-lnk1112-module-machine-type-x64-conflicts-with-target-machine-typ

  那么怎么解决呢 ?

  打开E:\cocos2d-x-2.2.5下面的cocos2d-wp8.vc2012.sln,在配置管理器中将Box2D,chipmunk,CocosDenshion,libcocos2d,libcocoslua,libExtensions项目的平台选择为ARM,分别重新生成解决方案。这时可以看到E:\cocos2d-x-2.2.5\WP8\ARM\Debug目录有如下文件夹

 

 把所有的文件夹复制到E:\cocos2d-x-2.2.5\samples\Cpp\HelloCpp\proj.wp8-xaml\WP8\Win32\Debug进行替换。

 重新生成调试 。手机界面上也出现了我们熟悉的hello world 。

 okay~ 我们已经成功把cocos2dx-win32项目一直到了cocos2dx-wp8。

 

 

  

cocos2dx - wp8项目配置遇到的问题及解决方案