Tôi thành công compiled spidermonkey (trên cửa sổ), làm cách nào tôi có thể liên kết với nó ngay bây giờ (đến embed it)?Liên kết chương trình C++ với SpiderMonkey?
js-config không được cài đặt đúng cách và tôi không hiểu this workaround.
Việc liên kết tới thư viện tĩnh sẽ dễ dàng hơn, nhưng tôi thậm chí không biết tệp đó là gì. Tôi có mozglue.lib, mozjs-43a1.lib, nspr4.lib, plc4.lib, plds4.lib
trong dist/sdk/lib
và nspr4.lib, plc4.lib, plds4.lib
trong dist/lib
.
Cập nhật
js-config
đã không làm việc vì tôi đã có this problem (-bash: '\r': command not found
vì Windows/Unix vấn đề ký tự xuống dòng, tôi chạy dos2unix js-config
và tôi có thể chạy nó).
Tuy nhiên, sản lượng không giúp (trên cửa sổ):
$ ./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
Ghi chú
tôi đã sử dụng lệnh sau để biên dịch:
g++ -std=c++11 -I<objdir>/dist/include -L<objdir>/dist/lib helloworld.cpp -o helloworld -lmozjs-31 -lz -lpthread -ldl
Tôi biết đó không phải là cách chính xác để biên dịch vì các thư viện đó không nằm trong số <objdir>/dist/lib
. Nó sẽ trả về các lỗi sau đây:
[...]/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
Câu hỏi này dường như rút ra một số sự chú ý. Lưu ý rằng tôi đã hỏi số same question for V8.
Bạn có thể cung cấp nguồn của mình trên git hay cái gì khác không? Nó có giúp thiết lập hướng dẫn endianess bằng '-mbig-endian' hoặc' -mlittle-endian' – Alex44
Bạn nên định nghĩa kiến trúc Windows và bộ xử lý đích. Thêm -D_WIN64 và -D_M_X64 làm tùy chọn trình biên dịch sẽ giúp ích. – Vink
Có lẽ, vấn đề của tôi là tôi không biết .lib Tôi nên liên kết. –