windows下使用VS2015编译V8 JavaScript引擎(v5.5 - 2016/09)
今天心血来潮, 下载了 v8,,然后就想着用vs编译
但是大家都苦恼的是 v8并不直接提供 vs用的项目文件和解决方案(.sln)
于是,在网上搜来搜去, 折腾来折腾去的;
终于一点一点的尝试, 可以执行 python gypfiles\gyp_v8.py -Dtarget_arch=x64
但是网上搜到的都是 python build\gyp_v8.py -Dtarget_arch=x64
可我git clone 的没有build文件夹啊, 好歹根据
https://github.com/v8/v8/wiki/Building-with-Gyp-(deprecated)#visual-studio
说的 在gypfiles目录找到了,但是执行命令,cpu疯狂一阵,之后 就一个out的目录,什么 sln,vcxproj 一个都没有看到
郁闷了,
,
,
然后就一路郁闷,到处翻腾, 看不同的,相关的 甚至是名词解释
直到下午4点多, 在网上搜索"gypfiles\gyp_v8" ,在列表里看到 node.js 甚至下载了其源代码用里面的 v8 测试, 也不行, 最后后还是不了了之
然后又翻了下搜索结果,看到 Gyp语法规则参考 & 工具的使用 (注1) , 诶!? 看看呗,也许能找到什么有用的东西呢
于是点进去浏览了, 当最后看到 gyp命令行 参数 --f 时,这个或许有用呢, 赶快测试,
--fmsvs 报错 不认识的参数,
改一下
-f msvs
哈,哈哈 有别的输出, 找不到testing下的文件!!! 貌似有戏,
看看, texting目录,
唉!!! 那不是是 vcxproj 文件么, 那不是 sln文件么!!!!!!!!
看看 v8 项目文件产生没,
v8/没有
v8/build/ 没有
v8/gypfiles/ 哦哦, 有了!!! 有了 :)
v8/src/ 也有v8.sln等项目文件了!!!!
大功告成!
折腾我快一天了有没有啊!!!!
下面附上我总结的步骤吧
1. 下载安装 Python 2. 下载 gyp 并安装
2.1 下载 gyp , 到一个目录
git clone https://github.com/svn2github/gyp
也可以在 v8 附属项目中下载(见3.1)
2.2 安装 gup
在 gyp 目录 执行
python setup.py install 3 下载 v8 及附属项目
3.1 下载 v8
git clone https://chromium.googlesource.com/v8/v8
git clone https://chromium.googlesource.com/external/gyp.git ./v8/tools/gyp
//需要安装 gyp ^python setup.py install^
git clone https://chromium.googlesource.com/chromium/deps/icu.git ./v8/third_party/icu
//^icu 比较大(125M)^
git clone https://chromium.googlesource.com/chromium/src/tools/clang.git ./v8/tools/clang
git clone https://chromium.googlesource.com/external/github.com/google/googletest.git ./v8/testing/ rename googletest gtest //改名
git clone https://chromium.googlesource.com/chromium/deps/cygwin.git ./v8/third_party/cygwin
//git clone https://chromium.googlesource.com/chromium/src/build.git ./v8/build
4. 创建VS项目工程
4.1 设置环境 变量
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_MSVS_VERSION=2015
//set GYP_GENERATORS=ninja //不需要
//set GYP_DEFINES=component=shared_library //这个也不需要
4.2 在 v8 目录执行,创建VS解决方案
python gypfiles\gyp_v8.py -Dtarget_arch=x64 -f msvs
生成DLL
python gypfiles\gyp_v8.py -Dtarget_arch=x64 -Dcomponent=shared_library -f msvs
生成lib
python gypfiles\gyp_v8.py -Dtarget_arch=x64 -f msvs
-f msvs <--- 突然让我想到了一个词语: 画龙点睛 !
然后编译, 也是有个坑, 一堆错误:
fatal error C1083: 无法打开包括文件: “base/trace_event/common/trace_event_common.h”: No such file or directory
google的和github上都没有这个文件,找不到
最后想想, 下载的node.js 里有v8 于是找找 还真有,
于是整个base目录(其实里面也就这么一个文件)直接拷贝到v8目录下,与src目录同级
所有v8开头的项目的属性都把 静态库 改成 动态库,包括 icuuc 和 icui18n , 再编译
非常耗时间, 我四核的, 继续等吧,
还有个:
2>parsing\parser.cc(1540): error C2220: 警告被视为错误 - 没有生成“object”文件
2>parsing\parser.cc(1540): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

导致后面几千个错误.... shit,也是个坑, 受不了了,直接取消了编译(Ctrl+Break) ...
看下, parser.cc 文件编码是Unicode的, 其他的都是ansii的编码, 反正里面也只有英文字符,不在乎编码, 改成和其他一样 ansii 编码了
编译很慢, 但是结果还是出现很多错误,都是差不多的错误
C2220 的错误, 和其他 "note: 参见对正在编译的类 模板 实例化"的警告 去掉 编译的参数 /WX , 更改警告等级甚至关闭警告,都没有用,
先这样吧, 等哪天有兴趣了在折腾....
如果你知道怎么解决,请告诉我,谢谢!!!
本文地址:http://www.cnblogs.com/lzpong/p/5888289.html
[注1: Gyp语法规则参考 & 工具的使用:http://www.cnblogs.com/x_wukong/p/4829598.html]
windows下使用VS2015编译V8 JavaScript引擎(v5.5 - 2016/09)的更多相关文章
- 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集
上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...
- 实践详细篇-Windows下使用VS2015编译安装Caffe环境(CPU ONLY)
学习深度学习背景 最近在做一款抢票软件,由于12306经常检测账号状态,抢票抢着抢着就需要重新登录了,然后登录是需要验证码的.所以我最开始是想到了使用java基于感知哈希算法pHash做相似度匹配识别 ...
- [转]Windows下使用VS2015编译openssl库
转自:http://blog.csdn.net/alger_magic/article/details/52584171 目标:编译vs环境下openssl库 工具: 1. 编译环境win10+vs2 ...
- V8:V8(Javascript引擎)
ylbtech-V8:V8(Javascript引擎) Lars Bak是这个项目的组长,目前该JavaScript引擎已用于其它项目的开发.第一个版本随着第一个版本的Chrome于2008年9月2日 ...
- V8 javascript 引擎
V8是一个由丹麦Google开发的开源java script引擎,用于Google Chrome中.[2]Lars Bak是这个项目的组长.[3] V8在执行之前将java script编译成了机 ...
- Windows下从源代码编译Skia
在PPAPI里面画图,能够结合第三方的图形库.比方Cairo.Skia. Google Chrome.Chromium和Android都使用Skia作为画图引擎.我也来试试Skia,先过编译关. fo ...
- 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)
转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...
- Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)
Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...
- 【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持
Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持 步骤: 1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.will ...
随机推荐
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- .NET Core系列 : 2 、project.json 这葫芦里卖的什么药
.NET Core系列 : 1..NET Core 环境搭建和命令行CLI入门 介绍了.NET Core环境,本文介绍.NET Core中最重要的一个配置文件project.json的相关内容.我们可 ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
- 关于 CSS 反射倒影的研究思考
原文地址:https://css-tricks.com/state-css-reflections 译者:nzbin 友情提示:由于演示 demo 的兼容性,推荐火狐浏览.该文章篇幅较长,内容庞杂,有 ...
- springMVC学习笔记--知识点总结1
以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...
- PHP与JAVA构造函数的区别
早期的PHP是没有面向对象功能的,但是随着PHP发展,从PHP4开始,也加入了面向对象.PHP的面向对象语法是从JAVA演化而来,很多地方类似,但是又发展出自己的特色.以构造函数来说,PHP4中与类同 ...
- .NET CoreCLR开发人员指南(上)
1.为什么每一个CLR开发人员都需要读这篇文章 和所有的其他的大型代码库相比,CLR代码库有很多而且比较成熟的代码调试工具去检测BUG.对于程序员来说,理解这些规则和习惯写法非常的重要. 这篇文章让所 ...
- 解构C#游戏框架uFrame兼谈游戏架构设计
1.概览 uFrame是提供给Unity3D开发者使用的一个框架插件,它本身模仿了MVVM这种架构模式(事实上并不包含Model部分,且多出了Controller部分).因为用于Unity3D,所以它 ...
- Consul-template的简单应用:配置中心,服务发现与健康监测
简介 Consul-template是Consul的一个方扩展工具,通过监听Consul中的数据可以动态修改一些配置文件,大家比较热衷于应用在Nginx,HAProxy上动态配置健康状态下的客户端反向 ...
- 易用BPM时代,软件开发者缘何选择H3?
近年来,企业级软件开发市场暗流汹涌,呈现出多种态势.软件开发团队规模趋于小型化,工作方式趋于快捷化,超过半数的软件开发者在工作中会选择使用易用的软件开发工具.随着流程管理越来越受到企业的重视,流程开发 ...