当前位置:编程学习 > JAVA >>

V8 javascript engine: 用vs2012编译

环境: windows8 vs2012 TortoiseSVN
 
目标:x64 的 v8 lib
 
 
1. 还是使用TortoiseSVN吧 (Git 我也就是乌龟水准,一看到google的Git和SVN命令混在一起,退缩了)
从不同的源,把代码sync下来, 在checkout中输入URL of repository 如下, 会自动映射到相应的目录
 
 
如果期间需要输入帐户密码的话,去http://code.google.com/ 注册一个,密码在右上角, Profile-->Settings-->GoogleCode.com Password
 
 
 
2. 调整code目录结构,因为编译过程中有相对路径的依赖, v8文件夹的名字可以随意改,作为根目录, 但是其它的可别动。
 
 
v8
    build
        gyp
    third_party
        cygwin
        python_26
 
3. 写一个devenv.bat, 设置PATH, 启动cygwin shell, 必需是cygwin shell, 编译过程中的某些脚本依赖于其中的命令
 
 
set PATH=third_party\python_26;%PATH%
set ROOT=/cygdrive/p/GitDev/v8
chdir third_party\cygwin\bin
bash --login -i
 
ROOT变量是非必要的,为方便
 
 
4.启动devenv.bat  
 
cd $ROOT
python build/gyp_v8 -Dtarget_arch=x64
 
如果编译x86, target_arch设置为x86即可
会在build目录下产生all.sln. 因为我电脑上只安装了VS2012, 所以产生的sln是vs2012格式的 (这个可能依赖于环境变量的VC值, 猜测)。
 
关闭console
 
 
5. 打开all.sln, 把编译目标修改为x64. 
 
开始编译吧。小会就好了,代码量不那么庞大, 15个工程。
 
 
6. 在vs中设置启动项目为 sample/shell, 运行shell
 
print('hell, world!');
shell正常工作,结束。
 
 
 
默认生成的是 static lib,共4个
 
preparser_lib.lib
v8_base.lib
v8_nosnapshot.lib
v8_snapshot.lib
 
v8_base.lib 体积很大, debug有80M,release有300M。 大概是各种目标体系和优化的组合,静态链接嘛,链接后exe不会那么巨大。
 
 
 
如果想要动态库, 除了修改几个lib的工程属性外,还要加上预定义宏 BUILDING_V8_SHARED。 这个我没有试过。
 
粗略调试看了下代码,里面还有些宏辅助调试,可以输出更多的信息,以后看明白了再记录吧。 
 
补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,