如何在2026年编译 Windows 版 qgit 软件

可视化对于git工具的使用很重要,尤其在使用命令行与git仓库进行交互时,额外的一个分支历史可视化窗口可以协助使用者定位目前的工作状态,避免在分支和提交的海洋中迷失。对我个人而言,我最喜欢一款不算大众的git可视化软件:qgit。它使用Qt与C++编写,功能简单,在Linux桌面环境中轻快小巧而能够满足我的git可视化需求。一个美中不足的问题是其原作者并未提供Windows平台的原生qgit可执行程序,只有源代码,且其构建文档各处也有过时问题。鉴于我的家中工作站是Windows 11桌面,本文记录我在Windows平台上编译该款软件的操作。

鉴于众所周知的Qt公司(在用户不登录的情况下)不提供Qt6预编译版本的问题,我的基本思路是使用对Linux/类Unix用户友好的msys2开发环境并使用msys2提供的Qt6开发环境。具体时间为2026年3月,使用的qgit代码版本为2.13。基本操作如下:

  1. 正常安装msys2。
  2. 在开始菜单点击“MSYS2 MINGW64”图标启动mingw-w64开发环境。这里不能用其他环境(如ucrt64),因当前情况下msys2提供的Qt6开发工具链仍然基于mingw-w64。
  3. 安装必需工具链:pacman -Syu; pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-qt6-5compat mingw-w64-x86_64-toolchain base-devel mingw-w64-x86_64-qt6
  4. 在mingw-w64环境中正常使用cmake进行构建:mkdir build; cd build; cmake ..; ninja
    • 如果遇到有关QTextCodec的编译错误,尝试替换#include <QTextCodec>字符串为#include <QtCore5Compat/QTextCodec>
  5. 提取build/文件夹下构建完成后生成的qgit.exe。然后我们需要从mingw-w64环境中抽出运行时必需的dll文件。虽然应该有更优雅的做法,但这里我的做法是将qgit.exe可执行文件挪到单独的文件夹中然后双击运行,系统提示缺少哪个文件就去msys2环境下找哪个,注意一定是环境中/mingw64/目录下的文件。
    • 运行时报告qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""这个错误需要特殊处理:解决办法是将mingw-w64环境中的qwindows.dll文件抽出来,放到qgit.exe所在文件夹下面的platforms/子文件夹中。
    • 整理过后所涉及的文件大致如图所示:
  6. 别忘了安装系统层级的git工具。直接装官网的git for windows即可。

最终启动qgit程序,运行效果如下图所示。左边是构建的Windows原生版本,右边是Windows WSL2版本。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注