我成功的compiled spidermonkey (在windows上),我现在怎么能链接到它(到embed it)?
js-config没有正确安装,我不理解this workaround。
链接到静态库应该更容易,但我甚至不知道它是哪个文件。我在dist/sdk/lib
中有mozglue.lib, mozjs-43a1.lib, nspr4.lib, plc4.lib, plds4.lib
,在dist/lib
中有nspr4.lib, plc4.lib, plds4.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
这个问题似乎引起了一些关注。请注意,我询问了。
发布于 2015-10-06 09:24:51
在Cygwin项目中使用spidermoney的简单方法(您的一些输出表明您正在使用Cygwin)是使用Cygwin可用的libmozjs185包。我的项目有点复杂,但makefile应该是这样的:
CFLAGS += -g -I/usr/include/js -DXP_UNIX
CXXFLAGS += -g -I/usr/include/js -DXP_UNIX
JSLINK=-lmozjs185
objs = <your .o files>
<your app>: $(objs)
g++ -g -o <your app> $(objs) \
$(JSLINK) \
$(NULL)
如果你的应用只是'C‘代码,把上面的g++改成gcc。除了mozjs185之外,我还有更多的库,我把它们放在$(NULL)之前。
发布于 2015-10-02 09:22:06
解决方法背后的想法是运行js-config --libs并将结果放在JSAPI_LD_FLAGS中,可能会过滤掉Darwin上的内容,然后将JSAPI_LD_FLAGS附加到您的LDFLAGS中,这样您就可以链接正确的库。
因此,对于您的库问题,答案是构建js-config,然后使用--libs运行它
同样,您可以使用已经需要的CFLAGS和js-config --cflags
的输出的组合来创建您的CFLAGS。这是您可能已经发现自己使用其他库的漂亮pkg-config实用程序所做的事情。
这并不能解决字节顺序问题。为什么不直接运行配置脚本呢?
https://stackoverflow.com/questions/32328960
复制相似问题