Skip to content

SHBuild.zh CN

FrankHB edited this page Dec 2, 2014 · 22 revisions

SHBuild

试验支持的命令行工具,位于 Tools/SHBuild ,可以用来遍历目录编译链接本机程序。当前仅支持 MinGW32/MinGW64 环境。

直接(不带参数)运行 SHBuild 查询使用方法和选项等说明。

当前 SHBuild 支持的命令行直接传递给后端,若需要构建复杂项目,可以使用其它的脚本支持。

运行脚本 Tools/SHBuild-build.sh 生成 SHBuild 可执行文件,然后使用 SHBuild-YSLib.sh 生成本机 release (非调试)配置的静态库和动态库。暂时不支持其它配置。

运行脚本 Tools/SHBuild-self-host.sh 自举测试使用上述脚本编译得到的 SHBuild

关于使用 bash 构建库、测试项目和用户程序,以及基于 SHBuild 上的,参见关于 MinGW sysroot 的说明

自举和多阶段构建

SHBuild 支持本机自举,即在本机环境上直接构建 SHBuild 后继续使用 SHBuild 构建自身。

使用工具脚本安装 Sysroot ,当前这个过程分为两步:

  • 第一阶段(stage 1) 。
    • 调用脚本 Tools/Scripts/SHBuild-build.sh 。只依赖编译器进行编译链接。
    • 这个阶段的 SHBuild 通过脚本直接选取 YSLib 中的源文件作为依赖进行构建。
    • 因为直接调用编译器驱动链接,不支持显式指定并行编译,相对比较慢。编译的结果是静态链接的,文件体积比较大。
    • 主要用于下一阶段使用。不建议直接使用。
  • 第二阶段(stage 2) 。
    • 在脚本 Tools/install-sysroot.sh 内直接调用上一阶段构建的 SHBuild ,构建时链接到之前构建的 YFramework.dll 和 YBase.dll 。
    • 这是当前最终生成的 SHBuild 。
    • 链接和运行依赖 YFramework.dll 和 YBase.dll 。

也可以直接使用 SHBuild-self-host.shSHBuild-self-host-DLL.sh 进行直接自举。这两个脚本主要用于内部测试。

Clone this wiki locally