使用 Windows mingw-w64 工具链编译 Dandelion 的正确姿势

如果你因为某些问题不想安装微软的 Visual Studio,但又必须要在 Windows 实体机上构建 Dandelion(Windows 应该是大多数人常用的系统),可以参考这篇教程,使用正确姿势搭建环境,避免出现奇怪问题。

  • 使用 Visual Studio 构建的几个好处:
    • 安装时是图形化界面,较直接,一下子就安装好了
    • 原生编译器,减少 Windows 系统下可能出现的问题。依赖库检测操作系统不会出错,减少出错概率
    • 编译速度比较快
  • 使用 mingw-w64 构建的几个好处:
    • 大概比 Visual Studio 占用硬盘少一些,而且是便携软件,方便安装和迁移
    • 与现代 Linux 系统的编译器、命令等一致,有助于学习 Linux
    • 是自由软件,不和微软的 Visual Studio 绑定

首先,要获取最新的 mingw-w64 工具链 (GCC14 / Clang18)。推荐的方式是使用 msys2不可以使用诸如 Dev-C++ 或 Code::Blocks 里面自带的编译器,那些软件太老了,编译器版本太老,一定会遇到问题。获取步骤如下

  • 访问 msys2 官网,点击 Download the installer: msys2-x86_64-xxxx.exe 下载最新安装包
  • 按照官网的教程安装到某磁盘根目录下
  • 打开 msys2 终端,推荐采用 clang64 环境
    • 简单说,该环境采用 clang 编译器编译 windows 原生程序,打开的终端是 bash,这是一个类似 Linux 的环境,cmd/PowerShell 不能直接访问
  • 在环境中安装一些需要的软件包
    • 运行 pacman -S git 安装 git
    • 运行 pacboy -S toolchain:p 安装 clang 工具链
    • 运行 pacboy -S cmake:p ninja:p 安装构建工具 CMake 和 ninja,其中 ninja 和 make 功能相同,可替换为 make

其次,再使用 git clone 下载 dandelion 代码,checkout 到 v1.1.0 版本(或静态库对应的版本),并参考文档将静态库放置好,因为我们用的是 clang,静态库也要选择带 clang 的版本。

最后,参照 Linux 版本构建过程使用 cmake 构建,应该不需要其他操作。没有意外的话,应该可以编译成功。

关于如何使用 VS Code 调试 Clang64 环境编译的程序,以及如何添加 Clang64 环境终端,网上有很多教程,不再赘述。例如 CodeLLDB 扩展

3 Likes

非常好教程 ,垃圾 Windows​:dog:都不用,OS 我只用 ArchLinux!

Edit:草,忘了匿名了

Edit:草,这个地方怎么没法用匿名回复

3 Likes

∵ msys2 的包管理器是 pacman
∵ Arch linux 的包管理器是 pacman
msys2 就是 Arch linux :open_mouth:

1 Like

但目前未提供 GCC 编译的 dandelion-raydandelion-bvh 静态库 :thinking:

标有"ucrt"的静态库就是 gcc 的,只不过因为 msys2 的环境叫 ucrt,就这样叫了

学习了