环境:window os 、window sdk 10、vs2017
方法:官网提供的方法 https://github.com/v8/v8/wiki/Building-from-Source
问题1、cmd中执行命令时 tools/dev/v8gen.py x64.release,报错找不到gn.exe
解决:gclient sync 的时候没有同步生成代编译所需的文件 ,文件夹下面\v8\buildtools\win没有gn.exe
需要执行以下gclient runhooks(为保证成功,代理一定要配置好)
问题2、默认情况下,生成的是64位的v8.dll,如何编译32位的dll
解决:用gn生成 ,gn gen --ide=vs --args="target_cpu=\"x86\"" out.gn\86_solution,生成的过程中遇到
生成失败,主要是因为我的机器中windows sdk 10 只有x64的dbhelp.dll,为此只需要在报错的文件夹下建一个x86的文件夹并把,x64文件夹下的dll,拷贝过去就可以了
问题3、把dll嵌入到自己工程中的时候,能编译通过,执行到v8::Isolate* isolate = v8::Isolate::New(create_params);的时候失败,也就是创建隔离区的时候失败,原因是有些文件没有拷贝到执行目录下,具体需要的文件为:
红框里的文件是必须的。