`shermes` 无条件地输出 GNU 风格的编译和链接标志,因此其默认的 `SHERMES_CC` (= `CMAKE_C_COMPILER` = clang-cl) 在 Windows 上无法链接所编译的程序
作者: altween创建于 2026年9月7日更新于 2026年9月11日
shermes 将 JavaScript 编译为 C 语言,然后调用 C 编译器来构建和链接结果。该编译器默认为 CMake 的 C 编译器 - tools/shermes/CMakeLists.txt:18:
set(SHERMES_CC "${CMAKE_C_COMPILER}" CACHE STRING "C compiler to invoke")在 clang-cl 配置下,SHERMES_CC 为 clang-cl。但是,shermes 命令行用于构建的命令行是 GNU 驱动程序的形式,无条件地构建和链接结果 - tools/shermes/compile.cpp,buildCCArgs:-fPIC 在 :225,-fno-strict-overflow 在 :270,-L<dir> 在 :282 和 :289,-l<name> 在 :284,-lshermes_console 在 :310,-Wl,-rpath 在 :313 和 :317,-lm 在 :325,以及 -lhermesvm 在 :334。
内容来源: facebook/hermes