博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows下使用VS2015编译V8 JavaScript引擎(v5.5 - 2016/09)
阅读量:4958 次
发布时间:2019-06-12

本文共 3077 字,大约阅读时间需要 10 分钟。

今天心血来潮, 下载了 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 测试, 也不行, 最后后还是不了了之

然后又翻了下搜索结果,看到  (注1) , 诶!?  看看呗,也许能找到什么有用的东西呢

于是点进去浏览了, 当最后看到 gyp命令行 参数 --f 时,这个或许有用呢, 赶快测试,

--fmsvs  报错 不认识的参数, 

改一下

-f msvs  

哈,哈哈  有别的输出, 找不到testing下的文件!!!  貌似有戏, 

看看, texting目录,

唉!!! 那不是是 vcxproj 文件么, 那不是 sln文件么!!!!!!!!

看看 v8 项目文件产生没, 

v8/没有

v8/build/ 没有

v8/gypfiles/        哦哦, 有了!!! 有了 :)

v8/src/    也有v8.sln等项目文件了!!!!

大功告成!

折腾我快一天了有没有啊!!!!

 

下面附上我总结的步骤吧

1. 下载安装 Python2. 下载 gyp 并安装  2.1 下载 gyp , 到一个目录     git clone https://github.com/svn2github/gyp     也可以在 v8 附属项目中下载(见3.1)  2.2 安装 gup     在 gyp 目录 执行       python setup.py install3 下载 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/build4. 创建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]

转载于:https://www.cnblogs.com/lzpong/p/5888289.html

你可能感兴趣的文章
Infix to Postfix Expression
查看>>
SELECT LOCK IN SHARE MODE and FOR UPDATE
查看>>
Perl/Nagios – Can’t locate utils.pm in @INC
查看>>
目录导航「深入浅出ASP.NET Core系列」
查看>>
简易爬虫(爬取本地数据)
查看>>
python 进程间通信
查看>>
深拷贝 vs 浅拷贝 释放多次
查看>>
Javascript 有用参考函数
查看>>
点群的判别(三)
查看>>
GNSS 使用DFT算法 能量损耗仿真
查看>>
【转】Simulink模型架构指导
查看>>
MYSQL数据库的导出的几种方法
查看>>
SQL Server-5种常见的约束
查看>>
硬件之美
查看>>
[转载]java开发中的23种设计模式
查看>>
表格的拖拽功能
查看>>
函数的形参和实参
查看>>
文字过长 用 ... 表示 CSS实现单行、多行文本溢出显示省略号
查看>>
1Caesar加密
查看>>
【TP SRM 703 div2 500】 GCDGraph
查看>>