无需 v8_enable_i18n_support 标志的 ICU 支持

问题描述 投票:0回答:1

我正在开发一个使用 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 intl dayjs
1个回答
0
投票

v8_enable_i18n_support = false
关闭 V8 中的 ICU 支持,这就是该标志的目的。

如果您想要 ICU 支持,请使用

v8_enable_i18n_support = true
进行编译(我认为这也是默认值)。 V8 的构建系统会为您处理一切;当使用您自己的构建系统时,您将需要提供 ICU 进行链接(静态或动态,两者都应该工作)。

© www.soinside.com 2019 - 2024. All rights reserved.