大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
原文地址http://www.cctry.com/forum.php?mod=viewthread&tid=250698&extra=page%3D1&page=1&
如何让我们的c++程序可以支持脚本,尤其是支持JavaScript是件很有意思的事情的,那样可以为软件的灵活性,扩展性提供可能。你可能会说用JavaScript 引擎,对,JavaScript 引擎有很多,有Google v8,spiderMonkey等,虽然说spiderMonkey比Google v8速度上差了点,但也是各有千秋。要想用SpiderMonkey,就要首先对它进行编制制作。SpiderMonkey是Mozilla项目的一部分,用C语言写成,是负责执行JavaScript脚本的引擎。它是以源代码形式发布的,因此你必须自己编译它。SpiderMonkey也可以在Macintosh和Unix上使用,想了解如何在这些平台上进行编译请阅读Readme.html,当然都是英文的。如果你在百度上搜索,你搜到的已经是过去的老黄历了,不适用现在的新版本了。本人最近研究在研究这款JavaScript 引擎,所以把我在Windows系统的编译过程写下来供大家参考:
第一步,下载安装相关工具包或源码及准备工作:
1:我电脑上安装的vs2013,所以请先把把Visual Studio的编译命令文件所在目录写到环境变量PATH中去。例如,我的Visual Studio 2013是D:\Program Files\Microsoft Visual Studio 12.0\VC\bin。
2:SpiderMonkey源码:
https://people.mozilla.org/~sstangl/mozjs-31.2.0.rc0.tar.bz2
。解压生成C:\mozjs-31.2.0目录。
3:Mozilla制作工具包MozillaBuild:
https://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe
,下载后运行这个MozillaBuildSetup-Latest.exe,安装到C:\mozilla-build。
第二步,编译NSPR:
在Windows系统中编译spiderMonkey必须要依靠nspr,为什么需要nspr?因为编译spidermonkey的源码需要的头文件都在这个nspr里,还有就是要用到nspr编译出来的库文件。所以NSPR是必须的,而且也以源代码形式发布的,也要编译。下载NSPR的最新版跟以前有所不同,打开第一步的第3小步骤生成的C:\mozilla-build目录,里面有几个批处理文件。
1:我选择start-shell-msvc2013.bat,双击运行。
2:让后输入hg clone
https://hg.mozilla.org/projects/nspr
/c/nspr/mozilla/nsprpub命令,注意/c/nspr/mozilla/nsprpub前面有空格,这是要下载到的目录,回车执行命令,大概4-5分钟后出现如下画面:
等到命令执行完毕你会在c盘已经有了一个文件夹nspr,里面有子目录mozilla,而子目录里又有nsprpub文件夹,nsprpub文件夹里才是刚才下载得到的源码文件。有了源码我们就要编译了,首先切换到nspr目录。3:输入cd /c/nspr
4:输入mkdir target.debug,在nspr目录里新建一个文件夹,名为: target.debug。
5:输入cd target.debug,转到新建的target.debug文件夹里。
6:输入 ../mozilla/nsprpub/configure –enable-win32-target=WIN95,如果要生成Release版本的可以多加上
–disable-debug –enable-optimize
两项即可,这里只生成Debug版本的,后面的spiderMonkey的Release版本也是用的这个nspr的Debug版本,体积会稍大些,你完全可以再生成一份nspr的Release版本,然后用此Release版本再生成spidermonkey的Release版本,这里不再多说
。
如下图:
7:输入 make,如下图:
然后就开始编译了,命令执行结束的状况:
而命令执行完毕后,你会在C:\nspr\target.debug\dist\lib目录下得到下面的文件:
你会在C:\nspr\target.debug\dist\bin目录下得到下面的文件:
如果你得到到东西和上面的一样,那恭喜你,编译对了。可以进行下面的大步骤了。
第三步,构建mozjs-31.2.0源码,先编译Release版本的:
1:输入 cd /c/mozjs-31.2.0/js/src,转到第一大步的第2小步骤里的C:\mozjs-31.2.0目录。
2:输入 autoconf-2.13,回车执行命令。
3:输入 mkdir build_OPT.OBJ,创建目录build_OPT.OBJ,官方文档里说优化版(Release版本)要求以”_OPT.OBJ”命名结尾。
4:
输入
cd build_OPT.OBJ。
5:
输入
../configure –with-nspr-cflags=”-IC:/nspr/target.debug/dist/include/nspr” \
–with-nspr-libs=”C:/nspr/target.debug/dist/lib/nspr4.lib \
C:/nspr/target.debug/dist/lib/plds4.lib \
C:/nspr/target.debug/dist/lib/plc4.lib”
configue后面的参数项把编译nspr的lib文件和需要的头文件给指出来,不然的话要出错的,说是找不到头文件等,如果不加–with-nspr-cflags和–with-nspr-libs命令项出错图如下:
加上的话命令效果如下图:
当configure命令执行结束时,出现下面画面:
6:
输入
mozmake,回车执行命令,这个过程很漫长,可能需要大概40分钟的时间,中间有些异常的行为,就是老是重复一些片段,刚开始我以为是出错了,其实不是,一定要耐心等待命令执行完毕,重复片段的图片如下,我截的图是debug调试版本的图:
命令执行完毕的时候,在C:\mozjs-31.2.0\js\src\build1_OPT.OBJ\dist\lib目录下得到编译的lib文件:
在C:\mozjs-31.2.0\js\src\build1_OPT.OBJ\dist\bin目录下得到编译的dll文件,当然在
build1_OPT.OBJ文件夹
别的地方也有:
成功编译优化版本(Release),下面编译Debug版本:
1:输入
cd .. ,转到上层目录。
2:输入 autoconf-2.13
3:
输入 mkdir build_DBG.OBJ,官方文档要求Debug版本的要以”_DBG.OBJ”命名结尾
4:
输入 cd build_DBG.OBJ
5:
输入 ../configure –enable-debug –disable-optimize –with-nspr-cflags=”-IC:/nspr/target.debug/dist/include/nspr” \
–with-nspr-libs=”C:/nspr/target.debug/dist/lib/nspr4.lib \
C:/nspr/target.debug/dist/lib/plds4.lib \
C:/nspr/target.debug/dist/lib/plc4.lib”
再附上一个图片:
6:输入 mozmake,执行完毕效果图:
至此,成功编译Release和Debug版本。具体的编译结果请看各自创建的文件夹里的dist目录。现在你可以在开发环境中进行使用了。 如果完全按照上面的步骤,应该不会出什么错误的。实在遇到什么麻烦,可以通过
QQ:281832562
来联系询问我。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183432.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...