搭建开发环境
索引
根据使用的平台和开发的目标选读:
- 在 Linux 上开发
libsaki
或mjpancake
- 在 Windows 上开发
libsaki
或mjpancake
- 在 macOS 上开发
libsaki
或mjpancake
- 开发 Android 客户端
- 开发
ih
- 生成单个 exe 文件
在 Linux 上开发 libsaki 或 mjpancake
理论上,只要满足以下所有条件,就可以进行开发:
- 有一个完整支持 C++17 的编译器
- 装有最新版 Qt
具体步骤:
- 安装 7.x 或以上的 G++
- 下载并安装 Qt 5.14.2 开源版
- 从
mjpancake
以及libsaki
创建 fork - 通过以下命令克隆仓库:(替换掉
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
具体步骤:
- 安装 mingw-w64
- 安装路径不能带空格
- 安装时选择「最新版, i686, posix, dwarf」
- 下载并安装 Qt 5.14.2 开源版
- 从
mjpancake
以及libsaki
创建 fork - 通过以下命令克隆仓库:(替换掉
your-username
)git clone --recursive https://github.com/your-username/mjpancake.git
- 打开 Qt Creator,「工具」->「选项」, 将 C 与 C++ 的编译器都改成 mingw-w64 的,如下图。
环境搭建好以后,
用 Qt Creator 打开代码目录下的mjpancake.pro
项目,
点击左下角的 Build 按钮进行编译。
编译成功通过则说明环境搭建完成。
首次编译时可能会报出有关 QML 的语法错误, 此系静态分析器的问题所致,不影响程序的运行时行为,可无视。
首次接触libsaki
代码的,
建议阅读Libsaki代码导读,快速了解整体设计。
在 macOS 上开发 libsaki 或 mjpancake
- 通过 AppStore 安装最新版 Xcode
- 下载并安装 Qt 5.14.2 开源版
- 从
mjpancake
以及libsaki
创建 fork - 通过以下命令克隆仓库:(替换掉
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 的版本。
- 安装最新的 NDK
- 下载通过 NDK 编译的 armeabi 架构的 OpenSSL 1.1.1 静态库
- 下载 Qt 源码
- 通过 NDK 里的 Clang 编译 Qt,并静态链接 OpenSSL(需要几个小时)
- 通过这个新编译出的 Qt 构建
mjpancake.pro
开发 ih
ih
的开发环境和运行环境都被做成了 Docker 镜像,
因此需要安装的东西只有 Docker 和 Docker Compose。
- 第一步:安装 Docker 和 Docker Compose
- 第二步:从
ih
创建fork- 进入
ih
页面,点右上角的fork
- 进入
- 第三步:克隆仓库:(替换掉
your-username
)git clone https://github.com/your-username/ih.git
编译和运行都只需要一行命令,见ih
里的README.md
。
生成单个 exe 文件
通过以下步骤,可生成单个 exe 的 Windows 客户端:
- 安装 MinGW-w64
- 通过 MinGW-w64 编译 OpenSSL,并静态链接 libz
- 通过 MinGW-w64 开启静态库选项编译 Qt,并静态链接 OpenSSL
- 去打三个半庄x
- 使用新编译出的 Qt 构建
mjpancake.pro
看起来简单,实际上里面全是坑,需要很强的耐心。