索引

根据使用的平台和开发的目标选读:

在 Linux 上开发 libsaki 或 mjpancake

理论上,只要满足以下所有条件,就可以进行开发:

  • 有一个完整支持 C++17 的编译器
  • 装有最新版 Qt

具体步骤:

  1. 安装 7.x 或以上的 G++
  2. 下载并安装 Qt 5.14.2 开源版
    • 下载地址:镜像官网
    • 大陆网络环境下推荐使用镜像
  3. mjpancake 以及 libsaki 创建 fork
  4. 通过以下命令克隆仓库:(替换掉your-username
    • git clone --recursive https://github.com/your-username/mjpancake.git

环境搭建好以后, 用 Qt Creator 打开代码目录下的mjpancake.pro项目, 点击左下角的 Build 按钮进行编译。 编译成功通过则说明环境搭建完成。

首次编译时可能会报出有关 QML 的语法错误, 此系静态分析器的问题所致,不影响程序的运行时行为,可无视。

首次接触libsaki代码的, 建议阅读Libsaki代码导读,快速了解整体设计。

在 Windows 上开发 libsaki 或 mjpancake

理论上,只要满足以下所有条件,就可以进行开发:

  • 有一个完整支持 C++17 的编译器
  • 装有最新版 Qt

具体步骤:

  1. 安装 mingw-w64
    • 安装路径不能带空格
    • 安装时选择「最新版, i686, posix, dwarf」
  2. 下载并安装 Qt 5.14.2 开源版
    • 下载地址:镜像官网
    • 大陆网络环境下推荐使用镜像
    • 安装时勾选 MinGW 组件
  3. mjpancake 以及 libsaki 创建 fork
  4. 通过以下命令克隆仓库:(替换掉your-username
    • git clone --recursive https://github.com/your-username/mjpancake.git
  5. 打开 Qt Creator,「工具」->「选项」, 将 C 与 C++ 的编译器都改成 mingw-w64 的,如下图。

配置mingw-w64

环境搭建好以后, 用 Qt Creator 打开代码目录下的mjpancake.pro项目, 点击左下角的 Build 按钮进行编译。 编译成功通过则说明环境搭建完成。

首次编译时可能会报出有关 QML 的语法错误, 此系静态分析器的问题所致,不影响程序的运行时行为,可无视。

首次接触libsaki代码的, 建议阅读Libsaki代码导读,快速了解整体设计。

在 macOS 上开发 libsaki 或 mjpancake

  1. 通过 AppStore 安装最新版 Xcode
  2. 下载并安装 Qt 5.14.2 开源版
    • 下载地址:镜像官网
    • 大陆网络环境下推荐使用镜像
  3. mjpancake 以及 libsaki 创建 fork
  4. 通过以下命令克隆仓库:(替换掉your-username
    • git clone --recursive https://github.com/your-username/mjpancake.git

环境搭建好以后, 用 Qt Creator 打开代码目录下的mjpancake.pro项目, 点击左下角的 Build 按钮进行编译。 编译成功通过则说明环境搭建完成。

首次编译时可能会报出有关 QML 的语法错误, 此系静态分析器的问题所致,不影响程序的运行时行为,可无视。

首次接触libsaki代码的, 建议阅读Libsaki代码导读,快速了解整体设计。

开发 Android 客户端

Qt 官方建议使用 Android NDK r10e, 然而 r10e 自带的 G++ 编不过 Libsaki。 我们的解决方案是使用最新的 NDK 里的 Clang, 目前看来好像还没踩到什么坑。

此外,我们还需要让 Qt 集成 OpenSSL。 目前(2018年11月), 通过 NDK 里的 Clang 编译 OpenSSL 不是人干的事(不信你试试x), 所以我们最好下一个 prebuilt 的版本。

  1. 安装最新的 NDK
  2. 下载通过 NDK 编译的 armeabi 架构的 OpenSSL 1.1.1 静态库
  3. 下载 Qt 源码
  4. 通过 NDK 里的 Clang 编译 Qt,并静态链接 OpenSSL(需要几个小时)
  5. 通过这个新编译出的 Qt 构建mjpancake.pro

开发 ih

ih的开发环境和运行环境都被做成了 Docker 镜像, 因此需要安装的东西只有 Docker 和 Docker Compose。

  • 第一步:安装 DockerDocker Compose
  • 第二步:从ih创建fork
    • 进入ih页面,点右上角的fork
  • 第三步:克隆仓库:(替换掉your-username
    • git clone https://github.com/your-username/ih.git

编译和运行都只需要一行命令,见ih里的README.md

生成单个 exe 文件

通过以下步骤,可生成单个 exe 的 Windows 客户端:

  1. 安装 MinGW-w64
  2. 通过 MinGW-w64 编译 OpenSSL,并静态链接 libz
  3. 通过 MinGW-w64 开启静态库选项编译 Qt,并静态链接 OpenSSL
  4. 去打三个半庄x
  5. 使用新编译出的 Qt 构建 mjpancake.pro

看起来简单,实际上里面全是坑,需要很强的耐心。