मैं सफलतापूर्वक compiled spidermonkey (विंडोज़ पर), मैं अब इसके खिलाफ कैसे लिंक कर सकता हूं (embed it)?स्पाइडरमोन्की के साथ एक सी ++ प्रोग्राम को जोड़ना?
js-config ठीक से स्थापित नहीं है, और मुझे this workaround समझ में नहीं आता है।
स्थैतिक पुस्तकालय से लिंक करना आसान होना चाहिए, लेकिन मुझे यह भी नहीं पता कि यह कौन सी फ़ाइल है। में dist/sdk/lib
और nspr4.lib, plc4.lib, plds4.lib
में mozglue.lib, mozjs-43a1.lib, nspr4.lib, plc4.lib, plds4.lib
है।
अद्यतन
js-config
क्योंकि मैं this problem था काम कर रहा था (विंडोज/यूनिक्स न्यू लाइन पात्रों समस्या के कारण -bash: '\r': command not found
, मैं dos2unix js-config
भाग गया और मैं इसे चला सकते हैं)।
हालांकि, निर्गम (खिड़कियों पर) मदद नहीं करता है:
:$ ./js-config --cflags -std=gnu++0x -include /usr/local/include/mozjs-43a1/js/RequiredDefines.h -I/usr/local/include/mozjs-43a1 -Ic:/Users/Yvain/Documents/mozilla-central/js/src/build_OPT.OBJ/dist/include/nspr
$ ./js-config --libs ${libdir}/${JS_LIBRARY_NAME}.lib c:/Users/Yvain/Documents/mozilla-central/js/src/build_OPT.OBJ/dist/lib/nspr4.lib c:/Users/Yvain/Documents/mozilla-central/js/src/build_OPT.OBJ/dist/lib/plc4.lib c:/Users/Yvain/Documents/mozilla-central/js/src/build_OPT.OBJ/dist/lib/plds4.lib kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib
नोट्स
मैं संकलित करने के लिए निम्न आदेश का इस्तेमाल किया
g++ -std=c++11 -I<objdir>/dist/include -L<objdir>/dist/lib helloworld.cpp -o helloworld -lmozjs-31 -lz -lpthread -ldl
मुझे पता है कि यह संकलित करने का सही तरीका नहीं है क्योंकि उन पुस्तकालयों <objdir>/dist/lib
में नहीं हैं। यह रिटर्न निम्न त्रुटियों:
[...]/jscpucfg.h:121:3: erreur:
#error "Cannot determine endianness of your platform. Please add support to jscpucfg.h."
[...]
erreur: ‘JS_EvaluateScript’ was not declared in this scope
यह सवाल कुछ ध्यान आकर्षित करने लगता है। ध्यान दें कि मैंने same question for V8 से पूछा था।
क्या आप अपना स्रोत गिट या कुछ और प्रदान कर सकते हैं? क्या यह एंडियन मैनुअल को '-mbig-endian' या' -mlittle-endian' – Alex44
के साथ सेट करने में मदद करता है आपको विंडोज आर्किटेक्चर और लक्ष्य प्रोसेसर को परिभाषित करना चाहिए। कंपाइलर विकल्पों के रूप में -D_WIN64 और -D_M_X64 जोड़ना चाहिए। – Vink
शायद, मेरी समस्या यह है कि मुझे नहीं पता कि मुझे किस लिंक से लिंक करना चाहिए। –