首先要知道SpiderMonkey是个什么玩意 详细的可以看看这里(当然,如果你有google翻译的话看起来也一样费劲,你可以在语言那里选择中文。看完了再转回英文~因为中文有很多文档都没有的,比如:BUILD文档~):

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey

好吧,看完之后大概知道这就是个让C植入的JS引擎,也用于FF(让我想起了最终幻想和超时空要塞~嘛 看不懂的码农这几年的地白耕了~)浏览器。好的~ 让我们开始吧~

在开始之前,如果想自己挑战一下的话可以参考这两个地方:

https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions/Linux_Prerequisites (BUILD前准备,Linux~)

https://developer.mozilla.org/en-US/docs/SpiderMonkey/Build_Documentation (BUILD文档)

https://developer.mozilla.org/en-US/docs/SpiderMonkey/Setting_up_CDT_to_work_on_SpiderMonkey (加入到CDT环境中,就是Eclipse啦~)

首先呢,要在上面的连接内找到源码下载的传送门,然后,下载~

然后去Eclipse官网 下载 “Eclipse IDE for C/C++ Developers” 这个:

http://www.eclipse.org/downloads/

然后把下载下来的两个东西都解压了,那个 我们这里的是Fedora的系统哦~ 其实其他Linux都一样的拉~ 大概~

然后然后看那个build前准备的连接,找到RedHat那里(那个,可能玩开Linux的都知道,我就罗索一下~Fedora其实是RedHat分离出的一个开源项目,听说很多新尝试都会先用在Fedora上~写这篇文章的时候 Fedora已经是第19个版本了~)。其实就是在终端输入以下命令:

sudo yum groupinstall 'Development Tools' 'Development Libraries' 'GNOME Software Development'
sudo yum install mercurial autoconf213 glibc-static libstdc++-static yasm wireless-tools-devel mesa-libGL-devel alsa-lib-devel libXt-devel gstreamer-devel gstreamer-plugins-base-devel
# 'Development tools' is defunct in Fedora use the following
sudo yum groupinstall 'C Development Tools and Libraries'

然后呢,就是各种漫长的等待~(可以去LYF DYP什么的~ (= _, =) )

然后就是编译了~那个就按照文档上面说的去做就好,看文档这部分(Advanced build)

#那个#就是终端的注释符
#但是如果把这个也复制进去的话产生什么不良后果在下不承担的哦~
#开始吧~ 首先是打开源码包下js/src
cd js/src
#这个目测是自动配置?不知道是什么,没研究过C,反正执行后也没什么反馈~
autoconf-2.13

#-------Release BUILD--------
#这个是在当前目录下新建一个文件夹用于存放BUILD出来的东西~
mkdir build-release
#进入这个文件夹
cd build-release
#在这个文件夹内生成MakeFile
../configure
#这个~~就是开始编译啦~~
make
cd ..

#------Debug Build------
mkdir build-debug
cd build-debug
../configure --enable-debug --disable-optimize
make

又是一个漫长的等待~然后会看见好多的警告什么的,但是在Build-release和build-debug的文件夹内有东西了~好的,现在已经成功了一半了~

在这里说下release版和debug版的区别,release就是用于发布的,debug是用于debug的,完毕。

好了,该说下怎么融入到Eclipse了,如果喜欢终端的高手们可以绕路了~但是能用终端编译的估计也不会看到这里了~

好的,首先呢解压刚才的Eclipse安装包~是的 解压完了就是安装完了~~ (我擦 从头到脚都是绿油油的绿色软件啊~ Windows脸都红了~ 叫我这个忠实的Win使用者情何以堪,这打击就像当年刚认识毛片的时候一样沉重啊~~)

以下内容参考了那个CDT的文档

好的,然后就双击那个一直在叫 “打开我,打开我” 的图标 然后她会叫你选Workplace 好的 我随便选了一个 然后就是把引擎放到里面去了~ 呵呵~~

File > New > Makefile Project with Existing Code

Name 的话随便一个就好~ Browser… 里面把路径选中到 js/src 这里,下面那个框框选Linux自带的编译器就好了~ 然后Finish~

现在你就把引擎插进Eclipse了~ 但是呢~~ 好的 是放进~~ 但是呢 ~~ 好吧。。。我承认文字有一定误导色彩~

好的。。但是呢 Eclipse默认是Build在工作目录下的但是由于工作目录不是我们刚才build的 我们刚才是体内build的(当然也可以体外build啦~)所以还得选择回刚才我们build的地方~

右健Project Explorer的根结点选择Properties 然后在单击C/C++ Build那里 在右边的面板看到Build Location。然后单击File Sysem...选中刚才编译出来的两个文件夹的其中一个~就是Re和De的一个~ (在这里要说明一下的, 这个location里面必须要有MakeFile的 否则是不能通过Eclipse来编译的~~)

然后在Behaviour里面找到Build 把右边输入框中的all删了就行了~

文档上还需要做很多改动~ 但是实践下来,把上面的改了就OK了~

然后自己build一下会发现n多错误~没关系 貌似是没关联上而已~ 这个时候 你只要run一下~ 发现其实还是能跑的通的~~ 好神奇哦~ 不明觉历啊~~

然后说说体外的事情~ 其实刚开始我是把Build build到体外的~ 就是项目外~ 但是发现用Eclipse来Run Run不了(报了一个错误,大概就是找不到方法什么的)~ 然后我把build出来的东西加到Eclipse里面就行了~

然后思考了一下~ 参照回VS的build都是体内的~ 这个 我突然就释然了~ 好吧 体内就体内吧~

然后呢 这个总算是在Linux上编译成功了一个东西~ 感觉很不错~ 国庆就没了~ 公司奇葩的放假让我跟我的小伙伴不能一起玩~ 29 30 12345~ 这。。。所以也就拿这个打发打发时间~

好的 往后再看看这个引擎怎么玩的 写段demo出来 大概就完事了~ 7天 除了打机看片 看片打机(呵呵 说的是三个事情~) 总算是做了件有意义的事情~

好吧 有点色色的感觉~ 反正也不封面 爱转就转呗~

---- write by 博客园 godssl. Welcome to visit my blog~

说下Fedora下把SpiderMonkey放入Eclipse内编译的过程的更多相关文章

  1. Eclipse 反编译之 JadClipse

    一:下载对应的 net.sf.jadclipse_x.x.x.jar ,把该jar包放入到Eclipse中的 plugins 目录下,下载地址:https://sourceforge.net/proj ...

  2. 关于LLVM源码在Linux下编译的过程

    1. 最好在gitee上查找llvm的源码或者直接git clone https://gitee.com/uniquesquirrel/llvm-project.git,是和github上的llvm项 ...

  3. WebContent下新建目录放入jsp,跳转servlet页面出错解决

    为方便分类jsp文件,于是在web-content下新建了一级目录,将jsp文件放入其中,结果原本跳转的servlet出现404错误: 解决如下: 在用eclipse创建的servle会自动生成一个注 ...

  4. java通过文件路径读取该路径下的所有文件并将其放入list中

    java通过文件路径读取该路径下的所有文件并将其放入list中   java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中.假设指定路径为path,目标集合为fileList,遍 ...

  5. target存放的是编译后的.class文件地方 默认情况下不会讲非class文件放入进入 如果要使用非.class文件 需要通过增加配置方式自动加入文件

    target存放的是编译后的.class文件地方 默认情况下不会讲非class文件放入进入 如果要使用非.class文件 需要通过增加配置方式自动加入文件

  6. 润乾V4报表放入WEBINF保护目录下如何实现

     润乾报表放入WEBINF保护目录下如何实现 WEB-INF下面的文件都是受保护的,客户为了保护项目的文件不受到非法的访问,jsp页面都放在WEB-INF下,那润乾报表放入WEB-INF保护目录下 ...

  7. 如何将数据放入下拉框List值

    最近在做下拉框,里面放入值大概有这几种 //仓库业务类型 第一种 model.addAttribute("warehouseBizTypeList", basePropertySe ...

  8. 【转】【Android测试技巧】01. root后adb shell默认不是root用户时,如何将文件放入手机系统中

    http://blog.csdn.net/wirelessqa/article/details/8624208 有些机器root后通过adb shell 后,默认不是root用户,需要输入 su才能切 ...

  9. 用MT.exe将exe中的manifest文件提取出来和将manifest文件放入exe中

     前一种方法是将manifest文件放入exe中,但是要记得需要在工程中设置 这样的话exe中就不存在manifest了,在debug目录下就会看到相应的manifest文件.后者是将exe中的man ...

随机推荐

  1. java线程join的意思(转自http://zjj1211.blog_51cto_com)

    Join,单词本事就是连接的意思. 先贴出几段代码猜猜结果. <1> public static int Main() { Alpha oAlpha = new Alpha(); Thre ...

  2. 【Python】菜鸟的基本课程继续中

    同样的缩进表示这段代码处于同一个层次. 每一个print都自带一个换行. 定义变量一定要在使用函数等之前. abs(-14) ======= 取绝对值函数 内建函数 print abs(-14) == ...

  3. 【Python】控制流语句、函数、模块、数据结构

    1.三种控制流语句:if\for\while 2.每句后都要加冒号 3.有elif语句=else后加一个if 注意使用变量名! 注意缩进! 注意控制流语句后面要加冒号! 4.for i in rang ...

  4. C#中的局部类

    什么是局部类型? C# 2.0 引入了局部类型的概念.局部类型允许我们将一个类.结构或接口分成几个部分,分别实现在几个不同的.cs文件中. 局部类型适用于以下情况: (1) 类型特别大,不宜放在一个文 ...

  5. PyPI镜像网站

    镜像列表:http://www.pypi-mirrors.org/ 清华镜像:http://e.pypi.python.org/

  6. php常用正则

    平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: 2.    "^\d+$" //非负整数(正整数 + 0) 3.    "^[0-9]*[1 ...

  7. [转]Struts标签库详解

    本文转自:http://hi.baidu.com/xzkcz/blog/item/5cf9f91f01beb9f4e0fe0bd4.html   Struts提供了五个标签库,即:HTML.Bean. ...

  8. Markdown 是什么?

    这是一篇 Markdown 学习笔记,简要记录常用 Markdown 语法. Markdown 是什么? Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber)和亚伦· ...

  9. bzoj 3809 Gty的二逼妹子序列(莫队算法,块状链表)

    [题意] 回答若干个询问,(l,r,a,b):区间[l,r]内权值在[a,b]的数有多少[种]. [思路] 考虑使用块状链表实现莫队算法中的插入与删除. 因为权值处于1..n之间,所以我们可以建一个基 ...

  10. 远程重启linux主机的几种方法

    方法一,在终端上利用ssh,不登录远程主机,直接发送重启命令 ssh root@192.168.8.128 'reboot' 方法二,在终端上利用ssh和here document ssh root@ ...