我正在开发一个使用 v8 创建 javascript 运行时的项目。我将 v8 编译为静态库,并使用 cmakelists.txt 进行编译/链接。
我已将 v8 编译为静态库,并在 args.gn 中使用标志
v8_enable_i18n_support = false
是否可以通过在项目目录中添加 ICU 文件并将其链接到我用于编译的 cmakelists.txt 文件中来获得 intl 支持。
我不确定 v8 的国际支持如何运作。假设我在 args.gn 中使用
v8_enable_i18n_support = true
编译了 v8,我还需要链接项目目录中的 icu 文件吗?就像在这里的项目中一样,我们看到 v8 和 icu 文件都在 cmake 中链接
参考项目
尝试使用 v8_enable_i18n_support = false 编译 v8,但在尝试使用函数(需要 intl 支持的 dayjs 库方法)时,我确实收到错误 intl not Define ,表明它缺乏 ICU 支持(如果我的理解错误,请纠正)
v8_enable_i18n_support = false
关闭 V8 中的 ICU 支持,这就是该标志的目的。
如果您想要 ICU 支持,请使用
v8_enable_i18n_support = true
进行编译(我认为这也是默认值)。 V8 的构建系统会为您处理一切;当使用您自己的构建系统时,您将需要提供 ICU 进行链接(静态或动态,两者都应该工作)。