不久前,我使用了V8开发人员的说明,如何使用他们的旧metabuild系统GYP和Microsoft VC ++编译器(来自Visual Studio)来构建V8。这非常简单:使用GYP生成.sln文件,并使用Microsoft VC ++编译器进行构建。不幸的是,该说明不再可用,因为Google切换到了另一个metabuild系统(称为GN)并放弃了GYP。
这并不是真正的问题,因为GN也可以创建sln文件-但是据我所知,它们不再支持Microsoft编译器。他们发货并使用clang在Windows上构建V8(即使从Visual Studio中构建V8也是如此)。
所以,我的问题是:V8代码的当前主干是否可以创建sln文件,该文件可以在Visual Studio中打开(假设是2017年),并且可以使用Microsoft C ++编译器进行构建?
答案 0 :(得分:1)
这是三个单独的问题:(1)是否可以使用GN生成.sln文件以在Visual Studio中打开? (2)是否可以使用MSVC编译器编译V8? (3)是否可以在Visual Studio中构建V8?
(1)是。简而言之,运行gn gen --ide=vs
。参见np.transpose。
(2)是。将is_clang = false
放入您的args.gn
(可通过运行gn args out\my_build_folder
进行编辑),然后像往常一样使用ninja进行编译。这是经过不断测试的,因此可以保证继续工作(只要V8正式支持MSVC编译器)。
(3)我不这么认为。您可以尝试使用生成的.sln,但是构建过程相当复杂(构建一个工具的几个阶段,然后运行该工具以生成下一步使用的输出),我认为.sln大多只包含文件列表,但没有具体说明如何编译它们。