cocos2dx 3.13 simulator的问题

本文解决Cocos2d-x 3.13版本在VS2013环境下Lua项目的编译问题,包括main.cpp语法错误及MSB3073命令错误等,并提供详细步骤移植旧版本引擎文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载新的cocos2dx 3.13,想使用simulator来运行lua项目,结果发现使用vs2013编译不通过。

1.

9>main.cpp(5): error C2146: 语法错误: 缺少“;”(在标识符“wWinMain”的前面)
9>main.cpp(9): warning C4007: “wWinMain”: 必须是“__stdcall”
9>main.cpp(9): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

解决办法:

将main.cpp里的第5行APIENTRY修改为WINAPI或者__stdcall

 

 

2.

2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073: 命令“if not exist "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime" mkdir "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime"
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073:
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073: if not exist "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime\win32" mkdir "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime\win32"
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073:
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073: xcopy /Y /Q "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\Debug.win32\*.dll" "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime\win32"
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073: xcopy /Y /Q "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\Debug.win32\*.exe" "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime\win32"
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073: xcopy /Y /Q "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\Debug.win32\lang" "D:\cocos2d-x-3.13\tools\simulator\frameworks\runtime-src\proj.win32\..\..\..\runtime\win32"
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073:
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(132,5): error MSB3073: :VCEnd”已退出,代码为 4。

解决办法:

项目属性>生成事件>后期生成事件>命令行,将里面的最后一段:xcopy /Y /Q "$(OutDir)lang" "$(ProjectDir)..\..\..\runtime\win32" 删除(这个语言文件会在下面提到,如果这里不删除的话,将对应的lang文件拷贝到相应的地方也是可以的)

 

3.好,到目前为止,编译上的问题解决了。但是发现将simulator放到lua项目上使用不了啊,看代码发现对应脚本实现的start方法调用竟然没有了。

解决办法:(这个过程其实就是将旧引擎的整套东西搬过来)

下载旧的cocos2dx引擎(我的是3.10),将对应缺的文件和代码补上。

①将cocos2d-x-3.10\tools\simulator\frameworks\runtime-src\Classes\ide-support拷贝到对应新引擎文件夹里(里面包含了语言文件lang)

②将代码加入到simulator的工程里面去,由于我们只使用lua,所以只加lua到里面去(编译js的话好像有点问题,由于只使用lua所以将js的问题跳过了)

③将cocos2d-x-3.10\tools\simulator\frameworks\runtime-src\Classes\AppDelegate.cpp文件内容拷贝到新引擎对应的文件里去,并屏蔽js相关代码

 

OK,编译后放到lua项目中,正常运行了。

 

转载于:https://www.cnblogs.com/chevin/p/5871327.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值