安装 gclient

gclient 是一个可以同时支援 SVN 与 GIT 的工具,因为编辑 V8 Engine 时,必须用到这个小工具,所以我们得先安装它,安装的方式如下:

安装好后,输入 gclient ,测试看看这个指令能不能使用。

安装 Javascript V8 Engine

安装 V8 需要先知道自已的 cpu 是 32 位元,还是 64 位元, 我的电脑是 32 位元,所以我指定 ia32.release , release 也可以改成 debug,如果你是使用 64 位元的系统,那么你可以用 x64.release。git clone git://github.com/v8/v8.git src

cd src && make dependencies && make ia32.release library=shared soname_version=1.0 console=readline snapshot=off werror=no

我会用到 d8 这个 v8 command 程式,所以多加了 console=readline ,另外 v8 预设编译的时候会自动将 warning 转到 error ,这样会导致一点点小小的 warning 就造成编译失败,加上 werror=no 就可以解决这个问题。

上两步执行成功后,out/ia32.release/ 资料夹就会出现 libv8.so.1.0 这个重要的 v8 shared object ,接下来,就把这个档案装到系统 lib 资料夹下,而因为我还要开发 v8 extension ,所以还必需要将 header 档搬到 inlcude 底下。cd src && cp out/ia32.release/lib.target/libv8.so.1.0 /usr/local/lib/ && cp out/ia32.release/d8 /usr/local/bin/

ln -sf /usr/local/lib/libv8.so.1.0 /usr/local/lib/libv8.so

cd src && if [

-d /usr/local/include/v8 ]; then mkdir /usr/local/include/v8; fi;cd src && cp include/*.h /usr/local/include/v8/

编译问题处理

问题一: archives - ar 版本太旧错误讯息: error: ar crT libutils.a base64.o common.o ip_addr.o radiotap.o trace.o uuid.o wpa_debug.o wpabuf.o os_unix.o eloop.o

ar: illegal option -- T

这个问题发生的原因是 /usr/bin/ar 不支援这个功能 -T 这个参数,有可能是因为 binutil 版本太旧,所以只要升级到 binutils-2.23.1 即可。

问题二: 未指定 link libcurses错误讯息: LINK(target) xxx/v8/src/out/ia32.release/d8

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetnum'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetent'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetstr'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgoto'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `UP'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `BC'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tputs'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `PC'

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetflag'

解决方式就要在 v8 编译的时候,指定 link libcurse

修改档案: trunk/out/src/d8.target.ia32.mk , 将 -lcurse 加入至 LIBS 这个参数。

d8.target.ia32.mkLIBS := \

-lreadline\

-lcurses

相关资料

v8 编译 linux,安装与编译 Javascript V8 Engine相关推荐

  1. linux安装达梦数据库v8

    linux安装达梦数据库v8 操作系统.数据库 1.下载达梦数据库 2.安装前准备 2.1.建立数据库用户和组 2.2.修改文件打开最大数 2.3.挂载镜像 2.4.新建安装目录 3.数据库安装 4. ...

  2. linux 安装库 编译提示-lcrypto 无法链接,缺少 crypto 库

    linux 安装库 缺少 crypto 库 编译提示-lcrypto 无法链接,缺少 crypto 库 方法一 ------------------------------------- crypto ...

  3. Synopsys MetaWare for Linux 安装与编译指南

    目录 MetaWare简介 安装与编译前准备 安装GCC7.3 增加你的芯片文件 编译ev_runtime 编译cnn_tools 编译examples MetaWare简介 MetaWare是一个针 ...

  4. llvm编译linux,下载与编译LLVM和Clang

    最近写编译器,要用到LLVM,记录一下在Linux下编译和安装的过程. 准备 LLVM编译器架构的前端是Clang,狭义的LLVM是指它的后端. 我们可以通过SVN来下载LLVM和Clang最新的源码 ...

  5. go 跨平台编译linux,golang 跨平台编译

    只需要指定目标操作系统的平台和处理器架构即可: 命令行方式 因为不支持CGO,所以要禁用CGO SET CGO_ENABLED=0 // 禁用CGO SET GOOS=linux // 目标平台是li ...

  6. openssh编译 linux,openssh 的编译安装

    为了提升ssh的安全性,更新openssh也是很重要的. 下面开始编译安装openssh. openssh的官网:可以在这里下载最新的openssh 来安装http://www.openssh.com ...

  7. linux安装perl编译环境,CentOS7 安装 perl 环境

    1. 下载安装包 [root@node1 ~]# wget http://search.cpan.org/CPAN/authors/id/S/SH/SHAY/perl-5.26.1.tar.gz -- ...

  8. linux mxnet 编译,MXnet安装和编译

    根据install MXNet MXNet安装其实是从c++文件make编译成动态库到incubator-mxnet/lib/libmxnet.so,而incubator-mxnet/python其实 ...

  9. Linux一键编译,linux下一键编译安装MariaDB10.0.12

    虽然网上有很多的lnmp一键安装包,可以直接安装集成环境. 但是有时候我们需要单独的安装mariadb,则可以使用下面的脚本来安装. # 一键CMAKE编译安装mariadb-10.0.12 # 安装 ...

最新文章

  1. 链表问题1——打印两个有序链表的公共部分
  2. 前端学习之day02-CSS基础
  3. 使用Microsoft Word2016无法正常对Latex文本转换的踩坑和解决方法
  4. CDOJ--1668
  5. 解析xml的4种方法详解
  6. [VC6] RadioBox使用入门
  7. c语言数学语文英语成绩编程,急求一编程题!…
  8. 编译安装Mysql5.6.36
  9. 一个盒子相对于另一盒子垂直居中的方法
  10. Android qemu pipe高速管道(九)
  11. Android使adb作为host运行在arm64平台
  12. 【转】java关键字final ,抽象类、接口介绍
  13. NetApp F3020 盘柜报警升级修复全过程
  14. Laravel 获取文件并保存
  15. 保研面试/考研复试英语口语常见问题整理
  16. 最新电销语音机器人完整版源码+含安装教程
  17. Unity3D手游开发实践《腾讯桌球》客户端开发经验总结
  18. 计算机中的ping是什么情况,Ping值是什么意思?影响因素有哪些?
  19. 进阶篇:2.1)DFMA实施障碍和关键
  20. MSSQL 注入鄙见

热门文章

  1. css有些效果不显示,css导入成功但没有效果怎么办
  2. java定时器无法自动注入的问题解析(原来Spring定时器可以这样注入service)
  3. eclipse jdbc mysql下载_在eclipse里jdbc连接mysql 怎么安装
  4. matplotlib关于坐标轴数据显示的几个重要参数
  5. 排序算法系列:选择排序算法
  6. Android文件操作中的openFileOutPut和openFileInput
  7. java简单介绍_java 简单介绍
  8. python是一种跨平台开源免费的高级动态编程语言吗_第1章 管中窥豹:Python概述免费阅读_Python程序设计开发宝典免费全文_百度阅读...
  9. 两个月计算机考研数学,管综数学考前两个月让你事半功倍的方法
  10. html 文件路径 d files,tmpfiles.d