Cocos2d-x v3.3 external prebuilt lib 64bit

Hi everyone.

my project using cocos2d-x v3.3.

In v3.3, There are no 64bit android prebuilt library in external library folder.

so I can’t do 64bit android build.

How can I get 64bit external android library files?

thanks.

You can get it here: https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin.

1 Like

Will you add x84_64 sometimes? It’s needed for Chromebooks.

We don’t have Chromebooks here. Did you mean x86_64 for android?

It has some problem when I apply that external lib. cannot find Box2D.
error message :
jni/…/…/cocos2d/extensions/Android.mk: Cannot find module with tag ‘Box2D’ in import path

Now Box2D is a prebuilt lib instead of source code.

Yes, I mean Android. Chromebooks can be used to run Android apps, because they official supports the Play Store and they can have x86_64. We want to support it and Google forces us to deliver 64bit, that why I ask for long time for x86_64, but it was everytime ignored.

Thanks for quick answer. I fixed it.
but another error found.

jni/…/…/cocos2d/cocos/editor-support/cocostudio/TriggerMng.cpp:26:29: fatal error: json/filestream.h: No such file or directory

jni/…/…/cocos2d/cocos/./…/external/json/document.h:1334:5: error: no type named ‘Type’ in ‘struct rapidjson::internal::DisableIf<rapidjson::internal::OrExpr<rapidjson::internal::IsPointer<const char*>, rapidjson::internal::IsGenericValue<const char*> >, rapidjson::GenericValue<rapidjson::UTF8<> >&>’

jni/…/…/cocos2d/cocos/editor-support/cocostudio/TriggerMng.cpp:268:88: error: no matching function for call to ‘rapidjson::GenericValue<rapidjson::UTF8<> >::AddMember(const char [6], const char*&, rapidjson::GenericDocument<rapidjson::UTF8<> >::AllocatorType&)’ dataitem.AddMember(“value”, str3, allocator);

How can i fix it?

@mars3142 i think you can build it yourself using https://github.com/cocos2d/cocos2d-x-3rd-party-libs-src.

@maemil The libs may update too, you should adapt the new lib to the engine.

Is there any cocos2d-x v3.3 with this 64bit external library adopt?

I don’t know if there is any. And i think it is not too hard to do it, may be i am wrong.

@zhangxm, @mars3142 +1 for official Android x86_64 support.

1 Like

There are a lot of errors related to include path.
It seems that the location of some sources has changed.(ex.freetype2)
I want to fix it, but I do not know where to set the source path information.(CMakeList.txt?)
Where do I set the source path associated with the external library?

I think you can check contrib/src/xxx/rules.mak.

I’m sorry I do not understand. I do not know what folder you’re talking about.
There is no folder named contrib or a file named rules.mak.
Can you tell me where the folder is?
00

@zhangxm refers to the sources of the 3rd party library sources (https://github.com/cocos2d/cocos2d-x-3rd-party-libs-src). But this isn’t what you’re asking for, right?

You mean the cocos2d-x sources refers to missing files in external? Did you execute python ./download-deps.py?

@maemil sorry, i misunderstood your issue. If you use cmake, then you should modify CMakeList.txt. There are many CMakeList.txt, you should find the corresponding one. If you use provided projects, you should modify corresponding project files for corresponding platforms, for example, build/cocos2d_libs.xcodeproj for mac/iOS.

When I run build_native.py, does the CMakeList.txt also apply?

Oh, i forgot you used v3.3, cmake only for linux. So you should modify platform specific project files.

  • xccodeproj for iOS/mac
  • CMakeList.txt for linux
  • vxproj for windows
  • Android.mk for Android
#ifdef __aarch64__

#include "opensslconf-arm64.h"

#elif __arm__

#include "opensslconf-arm32.h"

#elif __i386__

#include "opensslconf-x86.h"

#else

#error "Unsupported architecture!"

#endif


Where is aarch64 and arm defined?
(The underline is invisible here. Actually there is an underline before and after aarch64)