【发布时间】:2017-05-12 10:10:20
【问题描述】:
我们正在开发 V8 版本 5.3.332,我们选择将其编译为静态库。我们使用以下配置编译了库。
MAKE_TARGET="android_$BUILD_LIB_VERSION.$BUILD_MODE" make $MAKE_TARGET -j1 snapshot=off debuggersupport=off GYPFLAGS="-Dandroid_ndk_root=$NDK_DIR -Dv8_use_snapshot='false' -Dv8_enable_i18n_support=0" ANDROID_NDK_ROOT=$NDK_DIR
通过上述配置,发布版本的 libv8_base.a 大小约为 35MB。所以我的问题是,在关闭 i18n 和快照支持的情况下,V8 的大小是否预计为 35MB? 是否有任何其他标志可以帮助我们进一步减小 v8 的大小?
另一个观察结果是,即使我们通过 debuggersupport=off ,我们仍然能够构建和调试我的 JS 应用程序。所以我们在这里的期望是,调试 API 将从库中剥离,并且不再提供运行时 JS 调试支持。 如果我们没有正确传递构建配置,请更正
【问题讨论】:
-
您是否混淆了存档的概念以及实际链接到可执行文件的内容?链接器不只是将 .a 文件推送到您的二进制文件中。它挑选并选择它需要的内容,然后仅将其插入到您的最终二进制文件中。
标签: v8 embedded-v8 libv8