小熊猫C++ 需要 Qt 5.15 或 6.8+。
推荐开发环境:
- Visual Studio Code。
- 性能更好。
- Qt Creator。
- (几乎)无需配置。
- 内建 UI 设计器。
- 调试器的 Qt 集成。
设置 Visual Studio Code 开发环境的步骤:
0. 在 Windows 设置中,启用 “开发人员模式”。启用 Git 的 core.symlinks
选项(git config core.symlinks true
)。
- 安装 xmake 和 XMake 扩展。
- 安装 C/C++ 扩展 以支持语言和调试功能。
- 根据需要安装 clangd 和 clangd 扩展以获得更好的代码分析能力。
- 配置工作区:
- 编译命令:
.vscode/compile_commands.json
(命令面板中的 “C/C++: 编辑配置(UI)”); - “Clangd: Arguments”:
--compile-commands-dir=.vscode
; - “Xmake: Additional Config Arguments”:如
--qt=/usr
。
- 编译命令:
- 在命令面板中执行 “XMake: UpdateIntellisense” 以生成编译数据库。
* 提示:xmake 的引入是为了支持编译数据库的生成和功能测试矩阵,目前并不完备。
库 + 工具链 \ 目标 | x86 | x64 | ARM64 |
---|---|---|---|
MSYS2 + 基于 GNU 的 MinGW | ❌ | ✔️ | ❌ |
MSYS2 + 基于 LLVM 的 MinGW | ❌ | ✔️ | ✔️ |
Windows NT 5.x + MinGW Lite | ✔️ | ✔️ | ❌ |
另请参阅详细构建指南——Windows。
小熊猫C++ 应该能在 MSYS2 的 64 位 MinGW 工具链上构建,包括基于 GNU 的环境(MINGW64、UCRT64)中的 GCC 和 Clang,以及基于 LLVM 的环境(CLANG64、CLANGARM64)中的 Clang,关于环境的详情可参考 MSYS2 的文档。以下几个工具链测试较充分:
- MINGW64 GCC,
- UCRT64 GCC(x64 推荐),
- CLANGARM64 Clang(ARM64 唯一可用且推荐的工具链)。
小熊猫C++ 官方版本使用 MINGW32 GCC(已归档)和 MINGW64 GCC 构建。
前置条件:
- Windows 10 x64 或更高版本,或 Windows 11 ARM64。
- 安装 MSYS2。
- 在所选环境中安装工具链、Qt 5 库、其他所需工具:
pacman -S \ $MINGW_PACKAGE_PREFIX-{cc,make,qt5-static,7zip,cmake} \ mingw-w64-i686-nsis \ git curl
要构建此项目,启动所选的 MSYS2 环境,然后运行
./packages/msys/build-mingw.sh
以构建带 MinGW GCC 工具链或不带编译器的小熊猫C++ 安装程序和绿色包;或者运行
./packages/msys/build-llvm.sh
以构建带 LLVM MinGW 工具链的小熊猫C++ 安装程序。
通用参数:
-h
、--help
:显示帮助信息。-c
、--clean
:清理构建目录。-nd
、--no-deps
:不检查依赖项。-t <dir>
、--target-dir <dir>
:指定输出目录。默认值为dist/
。
build-mingw.sh
的额外参数:
--mingw32
:把assets/mingw32.7z
添加到包中。--mingw64
:把assets/mingw64.7z
添加到包中。--mingw
:--mingw64
(x64 程序)的别名。--ucrt <build>
:把 Windows SDK 附带的 UCRT 运行时添加到包中。例如--ucrt 22621
表示 Windows 11 SDK 22H2。
build-xp.sh
脚本和 build-mingw.sh
类似,但是工具链由 Qt 库提供。
本机构建前置条件:
- Windows 10 x64 或更高版本。
- 安装 MSYS2。
要进行本机构建,启动 MSYS2 环境,然后运行
./packages/msys/build-xp.sh -p 32-msvcrt
要进行交叉构建,运行
podman run -it --rm -v $PWD:/mnt -w /mnt docker.io/amd64/ubuntu:24.04
# 在容器内
export MIRROR=mirrors.ustc.edu.cn # 根据需要设置镜像站
./packages/xmingw/build-xp.sh -p 32-msvcrt
此脚本除了接受 build-mingw.sh
的参数外,还接受以下参数:
-p|--profile <profile>
:(必需)MinGW Lite 和 Qt 库的编译配置。可用的配置有64-ucrt
、32-ucrt
、64-msvcrt
、32-msvcrt
。
另请参阅详细构建指南——符合 freedesktop.org(XDG)规范的桌面系统。
- 准备构建环境(Alpine、Arch、Debians、RPM 文档)。
- 对于 Debian 系:
sudo apt install --no-install-recommends build-essential debhelper devscripts equivs
- 对于 Debian 系:
- 调用构建脚本:
- Alpine Linux:
./packages/alpine/buildapk.sh
- Arch Linux:
./packages/archlinux/buildpkg.sh
- Debian 系:
./packages/debian/builddeb.sh
- Fedora:
./packages/fedora/buildrpm.sh
- openSUSE:
./packages/opensuse/buildrpm.sh
- Alpine Linux:
- 安装软件包:
- Alpine Linux:
~/packages/unsupported/$(uname -m)/redpanda-cpp-git-*.apk
- Arch Linux:
/tmp/redpanda-cpp-git/redpanda-cpp-git-*.pkg.tar.zst
- Debian 系:
/tmp/redpanda-cpp_*.deb
- Fedora、openSUSE:
~/rpmbuild/RPMS/$(uname -m)/redpanda-cpp-git-*.rpm
- Alpine Linux:
- 运行小熊猫C++:
RedPandaIDE
注意:这些构建脚本签出此存储库的 HEAD,因此构建之前务必提交所有变更。
此外,也可以在容器环境中构建(推荐使用 rootless Podman;Docker 可能搞乱文件权限):
podman run --rm -v $PWD:/mnt -w /mnt <image> ./packages/<distro>/01-in-docker.sh
# 以 Arch Linux 为例
podman run --rm -v $PWD:/mnt -w /mnt docker.io/archlinux:latest ./packages/archlinux/01-in-docker.sh
软件包位于 dist/
目录下。
redpanda-cpp-bin
包大体上就是 “AppImage 重新打包”。真正的构建过程在容器中进行,因此构建主机不一定要 Ubuntu 20.04,任何 Linux 发行版只要有 Podman 和 dpkg 就行。
- 安装 Podman,如果不是 Debian 及其衍生版还要安装 dpkg。
警告:不要在非 Debian 系上使用 dpkg 安装软件包,否则将会破坏系统。
sudo apt install podman
- 调用构建脚本:
./packages/debian-static/builddeb.sh
软件包位于 dist/
目录下。
podman run --rm -v $PWD:/mnt -w /mnt ghcr.io/redpanda-cpp/appimage-builder-x86_64:20241204.0 ./packages/appimage/01-in-docker.sh
Dockerfile 位于 redpanda-cpp/appimage-builder。可用架构:x86_64
、aarch64
、riscv64
、loong64
、i686
。
前置条件:
- 近期满足 Qt 5 或 Qt 6 要求的 macOS 版本。
- 安装 Xcode 命令行工具:
xcode-select --install
- 用 Qt.io 或镜像站的在线安装器安装 Qt。
- 选中 Qt 库(“Qt” 组下的 “Qt 5.15.2” 或 “Qt 6.8.0” 小组,勾选 “macOS”)。
要构建此项目,执行下列命令之一:
./packages/macos/build.sh -a x86_64 --qt-version 5.15.2
./packages/macos/build.sh -a x86_64 --qt-version 6.8.0
./packages/macos/build.sh -a arm64 --qt-version 6.8.0
./packages/macos/build.sh -a universal --qt-version 6.8.0