我成功地在compiled spidermonkey(在窗口),我現在怎麼能連接它(到embed it)?鏈接一個C++程序與SpiderMonkey?
js-config沒有正確安裝,我不明白this workaround。
鏈接到靜態庫應該更容易,但我甚至不知道它是哪個文件。我有mozglue.lib, mozjs-43a1.lib, nspr4.lib, plc4.lib, plds4.lib
在dist/sdk/lib
和nspr4.lib, plc4.lib, plds4.lib
在dist/lib
。
更新
js-config
是行不通的,因爲我有this problem(-bash: '\r': command not found
因爲在Windows/Unix的換行符問題,我跑dos2unix js-config
,我可以運行它)。
但是輸出沒有幫助(在Windows上):
$ ./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。
你可以在git或其他東西上提供源代碼嗎?是否有助於使用-mbig-endian或-mlittle-endian來設置永久性手冊 – Alex44
您應該定義Windows體系結構和目標處理器。添加-D_WIN64和-D_M_X64作爲編譯器選項應該有所幫助。 – Vink
也許,我的問題是,我不知道應該鏈接哪個.lib。 –