का उपयोग करके कैसे पास करूं, मैं जेएस से सी ++ कक्षा/विधि से जावास्क्रिप्ट ऑब्जेक्ट को वापस भेजना चाहता हूं।मैं जावास्क्रिप्ट से C++ से वस्तुओं को Emscripten
// Access JS objects in C++ like C++ objects
#include "emscripten/val.h" //Causing errors !
using namespace emscripten;
int main() {
val Math = val::global("Math");
return Math.call("abs", -10); // returns 10
}
मैं निम्नलिखित का उपयोग खिड़कियों पर emscripten का उपयोग कर संकलित करने के लिए:
cmd> EMCC Access_Objects.cpp
मैं मैं निम्नलिखित सरल कोड का टुकड़ा है जो काम नहीं कर रहा है त्रुटियों का विशाल लॉग प्राप्त करें:
In file included from Access_Objects.cpp:2:
In file included from C:\Program Files\Emscripten\emscripten\1.16.0\system\inclu
de\emscripten/val.h:4:
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:2
4:5: error:
unknown type name 'constexpr'
constexpr bool has_unbound_type_names = true;
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:2
4:15: error:
expected unqualified-id
constexpr bool has_unbound_type_names = true;
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:5
6:21: error:
use of undeclared identifier 'has_unbound_type_names'
if (has_unbound_type_names || std::is_polymorphic<C>::value) {
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:6
7:17: error:
use of undeclared identifier 'has_unbound_type_names'
if (has_unbound_type_names || std::is_polymorphic<C>::value) {
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:8
2:40: error:
a space is required between consecutive right angle brackets (use '> >')
struct TypeID<std::unique_ptr<T>> {
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:9
8:42: error:
a space is required between consecutive right angle brackets (use '> >')
struct TypeID<AllowedRawPointer<T>> {
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
82:9: error:
unknown type name 'constexpr'
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(char);
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:13: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
82:9: error:
expected member name or ';' after declaration specifiers
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(char);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:23: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
~~~~~~~~~^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
83:9: error:
unknown type name 'constexpr'
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(signed char);
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:13: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
83:9: error:
expected member name or ';' after declaration specifiers
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(signed char);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:23: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
~~~~~~~~~^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
84:9: error:
unknown type name 'constexpr'
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(unsigned char);
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:13: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
84:9: error:
expected member name or ';' after declaration specifiers
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(unsigned char);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:23: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
~~~~~~~~~^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
85:9: error:
unknown type name 'constexpr'
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(signed short);
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:13: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
85:9: error:
expected member name or ';' after declaration specifiers
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(signed short);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:23: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
~~~~~~~~~^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
86:9: error:
unknown type name 'constexpr'
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(unsigned short);
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:13: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
86:9: error:
expected member name or ';' after declaration specifiers
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(unsigned short);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:23: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
~~~~~~~~~^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
87:9: error:
unknown type name 'constexpr'
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(signed int);
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:13: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
87:9: error:
expected member name or ';' after declaration specifiers
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(signed int);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:23: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
~~~~~~~~~^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
88:9: error:
unknown type name 'constexpr'
EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE(unsigned int);
^
C:\Program Files\Emscripten\emscripten\1.16.0\system\include\emscripten/wire.h:1
74:13: note:
expanded from macro 'EMSCRIPTEN_DEFINE_NATIVE_BINDING_TYPE'
constexpr static WireType toWireType(const type& v) { \
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
ERROR root: compiler frontend failed to generate LLVM bitcode, halting
था ई 'वायर.h' में त्रुटि उत्पन्न हो रही है जिसे 'emscripten/val.h' में शामिल किया गया है।
मैं इन त्रुटियों को कैसे हल करूं? या क्या जेएस से सी ++ तक ऑब्जेक्ट पास करने का कोई अन्य तरीका है?
एक और तरीका है के रूप में संकलक करने के लिए = C++ 11 -std पास करनी होगी ऑब्जेक्ट पास करने के लिए: http://leaningtech.com/cheerp/ – ArtemGr
यह सी ++ 11 फीचर्स का उपयोग कर रहा है, इसलिए सही कमांड 'em ++ -std = C++ 11 Access_Objects.cpp' होगा –