window10编译器_windows shell编程

window10编译器_windows shell编程原文地址http://www.cctry.com/forum.php?mod=viewthread&tid=250698&extra=page%3D1&page=1&如何让我们的c++程序可以支持脚本,尤其是支持JavaScript是件很有意思的事情的,那样可以为软件的灵活性,扩展性提供可能。你可能会说用JavaScript引擎,对,JavaScript引擎有很多,有Googlev8,s

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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分钟后出现如下画面:


window10编译器_windows shell编程 



等到命令执行完毕你会在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版本,这里不再多说

如下图:


window10编译器_windows shell编程 





7:输入 make,如下图:


window10编译器_windows shell编程 





然后就开始编译了,命令执行结束的状况:




window10编译器_windows shell编程 





而命令执行完毕后,你会在C:\nspr\target.debug\dist\lib目录下得到下面的文件:




window10编译器_windows shell编程 





你会在C:\nspr\target.debug\dist\bin目录下得到下面的文件:




window10编译器_windows shell编程 





如果你得到到东西和上面的一样,那恭喜你,编译对了。可以进行下面的大步骤了。


第三步,构建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命令项出错图如下:




window10编译器_windows shell编程 



加上的话命令效果如下图:

window10编译器_windows shell编程 

当configure命令执行结束时,出现下面画面:




window10编译器_windows shell编程 
6:

输入 
mozmake,回车执行命令,这个过程很漫长,可能需要大概40分钟的时间,中间有些异常的行为,就是老是重复一些片段,刚开始我以为是出错了,其实不是,一定要耐心等待命令执行完毕,重复片段的图片如下,我截的图是debug调试版本的图:


window10编译器_windows shell编程 




命令执行完毕的时候,在C:\mozjs-31.2.0\js\src\build1_OPT.OBJ\dist\lib目录下得到编译的lib文件:




window10编译器_windows shell编程 



在C:\mozjs-31.2.0\js\src\build1_OPT.OBJ\dist\bin目录下得到编译的dll文件,当然在
build1_OPT.OBJ文件夹
别的地方也有:






window10编译器_windows shell编程 



成功编译优化版本(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”


再附上一个图片:




window10编译器_windows shell编程 





6:输入 mozmake,执行完毕效果图:




window10编译器_windows shell编程 




至此,成功编译Release和Debug版本。具体的编译结果请看各自创建的文件夹里的dist目录。现在你可以在开发环境中进行使用了。  如果完全按照上面的步骤,应该不会出什么错误的。实在遇到什么麻烦,可以通过
QQ:281832562
来联系询问我。











版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183432.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月10日 下午7:00
下一篇 2022年10月10日 下午7:00


相关推荐

  • 运算放大器 之 概述

    运算放大器 之 概述转载来源:[维基百科]《运算放大器》运算放大器(英语:OperationalAmplifier,简称OP、OPA、op-amp、运放)是一种直流耦合,差模(差动模式)输入、通常为单端输出(Differential-in,single-endedoutput)的高增益(gain)电压放大器。在这种配置下,运算放大器能产生一个比输入端电势差大数十万倍的输出电势(对地而言)。因为…

    2022年5月24日
    85
  • 实体list转JSONArray对Date数据处理「建议收藏」

    实体list转JSONArray对Date数据处理「建议收藏」直接上代码importnet.sf.json.JSONArray;importnet.sf.json.JsonConfig;importnet.sf.json.processors.JsonValueProcessor;importjava.math.BigDecimal;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.List;

    2022年6月24日
    28
  • voliate关键字的应用误区

    voliate关键字的应用误区写下这篇博客也是因为本人之前对voliate关键字理解不透彻,才有了应用误区,希望同样没有理解到位的朋友可以一起踩坑,也欢迎上帝视角明明白白的大佬指出本文的不当之处。先说一下自己之前对voliate的理解,voliate通过内存屏障可以禁止指令重排序和保证可见性,但是不能保证并发安全。禁止指令重排序就不说了,主要说一说如何保证可见性以及为什么不能保证并发安全。首先理解一下一个线程如何去修改…

    2022年5月20日
    57
  • mysql8.0修改用户密码_sql数据库更改用户登录密码

    mysql8.0修改用户密码_sql数据库更改用户登录密码示例:修改mysql数据库中的user表中的test用户的登录密码。MySQL版本号:8.0.15步骤:登录mysqlmysql-uroot-p输入登录密码使用mysql数据库USEmysql修改密码ALTERUSER’test’@’localhost’IDENTIFIEDWITHmysql_native_passwordBY’新密码’;…

    2022年8月12日
    7
  • jrtplib学习

    jrtplib学习这是JRTPLIB@Conference系列的第三编《JRTPLIB的几个重要类说明》,本系列的主要工作是实现一个基于JRTPLIB的,建立在RTP组播基础上的多媒体视频会议系统。这只是一个实验系统,用于学习JRTPLIB、RTP、和多媒体相关的编程,不是一个完善的软件工程。而且,我只会在业余的时间出于兴趣写一写。有志同道合的朋友可以通过tinnal@136.com这个邮箱或博客回复(推荐)和我交

    2022年7月28日
    7
  • 设计模式总结_用设计模式改造

    设计模式总结_用设计模式改造设计模式总结

    2022年4月22日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号