cocos2d / cocos2d-x

Cocos2d-x is a suite of open-source, cross-platform, game-development tools utilized by millions of developers across the globe. Its core has evolved to serve as the foundation for Cocos Creator 1.x & 2.x.
https://www.cocos.com/en/cocos2d-x
18.21k stars 7.06k forks source link

Cocos2dx failed to build on x86 due to the error C2039: 'SetIntervalReason': is not a member of 'cocos2d' #19432

Closed spacelg closed 5 years ago

spacelg commented 5 years ago

Environment: Windows Server 2016 + VS2017 Update 5 + cocos2d-x v3 branch latest srouce code

We tried to build cocos2d-x on Windows. It failed to build on x86 due to error C2039 C2065 and C2146. Could you please help take a look at this? Thanks in advance!

Steps to Reproduce:

  1. git clone --recursive https://github.com/cocos2d/cocos2d-x.git D:\Cocos2dx\src
  2. Open a VS 2017 x86 command prompt and browse to D:\Cocos2dx
  3. mkdir build_x86 && pushd build_x86
  4. cmake -G "Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_VERSION=10.0.17134.0 ..\src
  5. msbuild /m /p:Configuration=Release;Platform=Win32 build_x86\Cocos2d-X.sln /t:Rebuild

log_x86_build.log

Actual result: D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95175,22): error C2039: 'SetIntervalReason': is not a member of 'cocos2d' [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95175,22): error C2039: cocos2d::SetIntervalReason arg1; [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95175,22): error C2039: ^ [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\3d\CCBundle3D.h(34): message : see declaration of 'cocos2d' [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\3d\CCBundle3D.h(34): message : NS_CC_BEGIN [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] 39>D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95175,40): error C2065: 'SetIntervalReason': undeclared identifier [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95175,40): error C2065: cocos2d::SetIntervalReason arg1; [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95175,40): error C2065: ^ [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] 39>D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95175,40): error C2146: syntax error: missing ';' before identifier 'arg1' [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95175,40): error C2146: cocos2d::SetIntervalReason arg1; [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95175,40): error C2146: ^ [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] 39>D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95175,40): error C2065: 'arg1': undeclared identifier [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95175,40): error C2065: cocos2d::SetIntervalReason arg1; [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95175,40): error C2065: ^ [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] 39>D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95176,54): error C2065: 'arg1': undeclared identifier [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95176,54): error C2065: ok &= luaval_to_int32(tolua_S, 3,(int *)&arg1, "cc.Application:setAnimationInterval"); [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95176,54): error C2065: ^ [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] 39>D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95179,46): error C2065: 'arg1': undeclared identifier [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95179,46): error C2065: cobj->setAnimationInterval(arg0, arg1); [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95179,46): error C2065: ^ [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj] 39>D:\Cocos2dx\src\cocos\scripting\lua-bindings\auto\lua_cocos2dx_auto.cpp(95191,40): warning C4244: 'argument': conversion from 'double' to 'float', possible loss of data [D:\Cocos2dx\build_x86\engine\cocos\lua-bindings\luacocos2d.vcxproj]

minggo commented 5 years ago

I think it is fixed after merging https://github.com/cocos2d/cocos2d-x/pull/19431.