本文给出Windows平台SpiderMonkey的32位和64位静态库编译方法

WINDOWS-SpiderMonkey 32 位Release 静态库,开心吧?
网上2017 年以前的例子,你不一定能编译的过!哈哈
本文是2017 年8 月底,最新力作!哈哈哈哈哈哈哈:)
一. 下载MozillaBuild,关于作用请网上查询
地址:
https://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-L
atest.exe
什么!你敢下这个,作死!哈哈。
我下了,里边没有start-shell-msvcxxxx.bat!郁闷:(,但这玩
意估计你自己是搞不定的!哈哈
所以,听过的下这个吧:
https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-2.2.0.exe
没错,别犹豫,听我了,你又活过来了,不然后边有你苦
头吃呢!
二. 下载SpiderMonkey,这就是我们的主角了
https://people.mozilla.org/~sstangl/mozjs-31.2.0.rc0.tar.bz2
哈哈,废话不多说,你还是听我的,下这个吧
https://archive.mozilla.org/pub/js/mozjs-24.2.0.tar.bz2
我找的的是最大,最新的,你值得拥有
三. 安装环境
1. 双击MozillaBuildSetup-2.2.0.exe,安装去吧….
2. 进入mozilla-build 目录,双击start-shell-msvc2013.bat
3. 输入hg clone https://hg.mozilla.org/projects/nspr /c/nspr/mozilla/nsprpub
安装NSPR,这个是个好东西,哈哈,干嘛用,自己百度
吧,这这里没有的话,就别想编译Mozilla JS 引擎了
等待一会儿,
就下载完毕,内容在C:\nspr\mozilla\nsprpub
4. 编译NSPR
1. 进入c:\nspr
2. 新建目录target
3. 进入target 目录,输入命令后,回车
../mozilla/nsprpub/configure --enable-win32-target=WIN95 \
--disable-debug --enable-optimize
4. make 编译,
C:\nspr\target\dist\include
C:\nspr\target\dist\lib
C:\nspr\target\dist\bin
分别存放生成的NSPR 的头文件,lib 库,dll 库
四. 编译SpiderMonkey
1. RAR 解开mozjs-24.2.0.tar.bz2,然后把结果拷贝至C 盘,即
有了C:\mozjs-24.2.0 目录
2. 进入其上的子目录\js\src,创建目录build_OPT.OBJ
3. 输入命令,autoconf-2.13
4. 进入build_OPT.OBJ 目录,输入
../configure --enable-static --disable-shared-js
--enable-optimize \
--enable-win32-target=WIN95 \
--with-nspr-cflags="-IC:/nspr/build_OPT.OBJ/dist/include/n
spr" \
--with-nspr-libs="C:/nspr/build_OPT.OBJ/dist/lib/nspr4.lib \
C:/nspr/build_OPT.OBJ/dist/lib/plds4.lib \
C:/nspr/build_OPT.OBJ/dist/lib/plc4.lib"
5. 能到这里,你有福气,哈哈哈哈
输入,mozmake 命令吧
6. 结果
Js\src\build_OPT.OBJ 下边,js-static.lib 就是你要的静态库
Js\src\build_OPT.OBJ\dist\include 下边,都是你需要的库的头文件
五. Finally
相逢不易,又到了离别时分!哈哈哈哈
祝大伙儿使用SpiderMonkey 库开开心心:)

附件,关于64位编译

只有两点需要注意
一. 编译64 位NSPR 的配置
../mozilla/nsprpub/configure \
--enable-win32-target=WIN95 \
--disable-debug --enable-optimize \
--enable-64bit \
--target=x86_64-pc-mingw32
二. 编译64 位的SpiderMonkey 的配置
../configure \
--enable-static \
--disable-shared-js --enable-optimize \
--enable-win32-target=WIN95 \
--enable-64bit \
--with-nspr-cflags= \
"-IC:/nspr/build_OPT.OBJ/dist/include/nspr" \
--with-nspr-libs="C:/nspr/build_OPT.OBJ/dist/lib/nspr4.lib \
C:/nspr/build_OPT.OBJ/dist/lib/plds4.lib \
C:/nspr/build_OPT.OBJ/dist/lib/plc4.lib"
三. Finally
解释下:
1. 本人下载的源码,不支持在vs2015||vs2017 上编译,
这是在配置|编译错误信息里明确指出来了。
我也没有安装vs2013,但我机器上有vs2010。
所以,我是用vs2012 编译这一切的,但是你下载那个
MozillaBuild-24..2.0 安装后可是没有提供vs2010 配置项
的噢,这个是我自定义来的,你也可以从更早的版本里
或得。
2. 关于这个--target=x86_64-pc-mingw32 配置项目,在官
网上64 位编译必须加上。在我这里如果不加入此项
目做编译,那么生成32 位和64 位静态库js_static.lib
的过程没有问题。只是最后的库大小完全一样,我深
表怀疑是否真的生成了64 位版本。但如果你加上此
配置项,NSPR 库可以顺利编译,但是SpiderMonkey
库就会在编译时报错误:
C:\Program Files (x86)\Microsoft
SDKs\Windows\v7.0A\include\winnt.h(14982) : error
C3861: '__readfsdword': identifier not found
也就是SDK 里有函数没有定义,估计是我的VC 版本
低所致的低版本依赖SDK 库实现不完全所致。
如果你有vs2012 或者vs013 请自己去编译验证,估
计你是幸运儿!哈哈哈
好了, 相逢不易, 送别很难,最后, 祝大家在
SpiderMonkey 的开发道路上顺利。

再会OK。

另外,在CSDN上还有本人写的另外一篇文章,介绍 windows平台上编译与使用lua(语言) 开源项目的文章,感兴趣的话可以去看看

编译 过程,参考mozilla官方资料:https://developer.mozilla.org/En/SpiderMonkey/Build_Documentation 编译 环境:VC2008 express 1、下载并解压SpiderMonkey,版本:1.8.0地址:http://ftp.mozilla.org/pub/mozilla.org/js/js-1.8.0-r 《用perl解析JavaScript之JavaScript模块的安装--SpiderMonkey》 安装依赖软件: 安装pyrex:sudo apt-get install python-pyrex 安装g++:sudo apt-get install g++ 安装libjs.so: $ tar zxvf js-1.7.0.tar.gz $ cd js/src $ make -f Makefile.ref $ cp Linux_All_DBG.OBJ/libjs.so /usr/lib 安装spidermonkey: $ unzip python -spidermonkey .zip $ cd python -spidermonkey $ python setup.py build $ python setup.py install $ python test.py spidermonkey的使用方法: eval_script函数: >>> from spidermonkey import Runtime >>> rt = Runtime() >>> cx = rt.new_context() >>> cx.eval_script("1 + 2") + 3 python中的函数在spidermonkey中运行: >>> class Foo: ... def hello(self): ... print "Hello, Javascript world!" >>> cx.bind_class(Foo, bind_constructor=True) >>> cx.eval_script("var f = new Foo(); f.hello();") Hello, Javascript world! >>> f = cx.eval_script("f;") >>> f.hello() Hello, Javascript world! get_global函数: >>> jsCode= "var acc = 'libearlibear'.substr(3,3) + 'libeautlibeaut'.substr(5,5) + 'abc';" >>> cx.eval_script(jsCode) >>> acc = cx.get_global('acc') 'earutlibabc' 初次使用SpiderMonkey,对它了解并不多,所以它是什么,请自行去搜索。本文只讲述我们用SpiderMonkey能做什么,我们可以用c/c++调用SpiderMonkey的接口,去执行JavaScript代码。这听起来是不是很酷,现在一起开始吧。 我在linux下,安装很简单,去http://ftp.mozilla.org/pub/mozilla.org/js/下载源码包js-1. 大家好,前段时间看到VC驿站上面会员发布了一篇文章《 Windows 系统 编译 制作SpiderMonkey最新版mozjs-31.2.0版本》,地址为:http://www.cctry.com/thread-250698-1-1.html 过程写的很详细,使用的也是目前来说SpiderMonkey的最新版本31.2.0,不过我之前用的一直是1.8.5版本,用老的版本 编译 出来的SpiderMonkey 本文给出 Windows 平台SpiderMonkey的32位和64位静态库 编译 方法 WINDOWS -SpiderMonkey 32 位Release 静态库,开心吧?网上2017 年以前的例子,你不一定能 编译 的过!哈哈本文是2017 年... 1. 下载js-1.7.0.tar.gz, 解压2. 进入src3. 用文本编辑器打开 js.mak4. 在314行和315行插入  "$(INTDIR)/jsiter.obj" /  LINK32_OBJS= /"$(INTDIR)/jsiter.obj" / "$(INTDIR)/jsapi.obj" / "$(INTDIR)/jsarena.obj" / 原文地址http://www.cctry.com/forum.php?mod=viewthread&tid=250698&extra=page%3D1&page=1& 如何让我们的c++程序可以支持脚本,尤其是支持JavaScript是件很有意思的事情的,那样可以为软件的灵活性,扩展性提供可能。你可能会说用JavaScript 引擎,对,JavaScript 引擎有很多,有Google v8,s 基于 C 语言的 JavaScript 引擎探索 使用 SpiderMonkey 脚本化您的应用 邱 俊涛, 软件工程师, 云电同方研发中心 邱俊涛,毕业于昆明理工大学计算机科学与技术专业,对机械控制、电子、人工智能、函数式编程等领域有浓厚的兴趣,对计算机科学的底层比较熟悉。喜欢 C/JAVA/Python/JavaScript 等语言。现就职于云电同方研发中心。 简介: JavaScri... 今天使用mac 编译 spidermonkey的android库时遇到下面报错,可是从configure中没找到怎么把log库关联到 编译 环境中。求各位大大指点,感谢!configure参数设置如下:../configure --with-android-ndk="/Users/xxx/.mozbuild/android-ndk-r15c" --disable-shared-js --with-and... 配置了在BCB下的SpiderMonkey 编译 器,记录下来方便以后查看:下载:在https://developer.mozilla.org/En/SpiderMonkey/Getting_SpiderMonkey_source_code上可以下载到SpiderMonkey的最新源码。 编译 fdlibm.lib根据JS的依赖关系,需要先 编译 fdlibm这个文件,新建立一个BCBLib工 /* 摘要:在你的代码中嵌入JS引擎 */ // 下载获得js-1.60.tar.gz的tarball并解压,下载地址:http://ftp.mozilla.org/pub/mozilla.org/js/ // 用vc6打开src目录下的js.mdp,vc6会提示你转换到新版的dsp,确定会得到3个dsp工程文件; // 设定这三个工程为活动工程,从上往下先设定Active Project为