windows-spidermonkey
听过Mozilla(火狐浏览器的娘家)的javascript引擎吗?感兴趣吗?想在windows平台的应用开发中使用这个引擎吗?
肯定?
好,往下看!
本文给出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(语言)开源项目的文章,感兴趣的话可以去看看
http://bbs.csdn.net/topics/392233711
windows-spidermonkey的更多相关文章
- 说下Fedora下把SpiderMonkey放入Eclipse内编译的过程
首先要知道SpiderMonkey是个什么玩意 详细的可以看看这里(当然,如果你有google翻译的话看起来也一样费劲,你可以在语言那里选择中文.看完了再转回英文-因为中文有很多文档都没有的,比如:B ...
- SpiderMonkey js引擎的静态编译与使用
原文出处: http://yaolixing.oltag.com/gns-8ABFFE2D-EB1E-44FA-9118-217ED7959536.html 几百KB的跨平台js引擎,是不是您心之所想 ...
- SpiderMonkey js引擎的静态编译与使用, SpiderMonkey的使用
SpiderMonkey js引擎的静态编译与使用 2017年10月02日 02:51:22 yaolixing01 阅读数:536 原文出处: http://yaolixing.oltag.co ...
- Windows server 2012 添加中文语言包(英文转为中文)(离线)
Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...
- Windows Server 2012 NIC Teaming介绍及注意事项
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...
- C# 注册 Windows 热键
闲扯: 前几日,一个朋友问我如何实现按 F1 键实现粘贴(Ctrl+V)功能,百度了一个方法,发给他,他看不懂(已经是 Boss 的曾经的码农),我就做了个Demo给他参考.今日得空,将 Demo 整 ...
- Windows 7上执行Cake 报错原因是Powershell 版本问题
在Windows 7 SP1 电脑上执行Cake的的例子 http://cakebuild.net/docs/tutorials/getting-started ,运行./Build.ps1 报下面的 ...
- 在离线环境中发布.NET Core至Windows Server 2008
在离线环境中发布.NET Core至Windows Server 2008 0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面作为测试,现在打算发布 ...
- Windows平台分布式架构实践 - 负载均衡
概述 最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Linux和Mac上运行.那么大家(开发者和企业)为 ...
- dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...
随机推荐
- Linux内核编译指定输出目录
# kbuild supports saving output files in a separate directory.# To locate output files in a separate ...
- CMake error with move_base_msgs问题解决
错误 CMake Error at /opt/ros/groovy/share/catkin/cmake/catkinConfig.cmake: (find_package): Could not f ...
- 计蒜客 31434 - 广场车神 - [DP+前缀和]
题目链接:https://nanti.jisuanke.com/t/31434 小 D 是一位著名的车手,他热衷于在广场上飙车.每年儿童节过后,小 D 都会在广场上举行一场别样的车技大赛. 小 D 所 ...
- 垃圾回收基本算法 内存管理 GC大统一理论
<垃圾收集> (豆瓣) https://book.douban.com/subject/1157908/ 第1章 简介1.1 内存分配的历史1.1.1 静态分配1.1.2 栈分配1.1.3 ...
- [development][security][modsecurity][nginx] nginx / modsecurity development things
接续前节:[security][modsecurity][nginx] nginx 与 modsecurity nginx开发手册:https://nginx.org/en/docs/dev/deve ...
- Django2.0跨域请求配置
跨域:通过js或python在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(Django)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- kubernetes微服务部署
1.哪些服务适合单独成为一个pod?哪些服务适合在一个pod中? message消息服务被很多服务调用 单独一个pod dubbo服务和web服务交互很高放在同一个pod里 API网关调用很多服务 ...
- Python摸爬滚打之day04----基本数据类型(列表,元组)
1.列表 列表是可变的, 有序的数据类型,列表是按照添加顺序来保存的,可以存放各种数据类型. 1.1 列表的切片(同字符串) 1.2 列表的增删改查 注意: 列表是可以直接在列表上面进行操 ...
- Spring MVC中前端控制器拦截问题
<!-- 前端控制器 --> <servlet> <servlet-name>ssm</servlet-name> <servlet-class& ...
- linux export source