Hasty Briefsbeta

双语

Building Principia for Windows XP

13 days ago
  • #Open Source
  • #Windows XP
  • #Cross-Compilation
  • 《Principia》最初于2014年发布,支持Windows XP,但现代工具链和依赖项(如UCRT)使得这种兼容性难以保证。
  • 该项目旨在通过开源构建将Principia带回Windows XP,利用SDL实现跨平台支持,并只需最小的代码更改。
  • 使用GCC、binutils和mingw-w64构建了一个自定义工具链,目标为i686-w64-mingw32,并设置MSVCRT和WIN32_WINNT为0x0501以兼容Windows XP。
  • 使用新工具链构建了如curl、Freetype、libjpeg-turbo、libpng、SDL和zlib等依赖项,但为了避免复杂性,将GTK3替换为Dear Imgui来处理对话框。
  • 构建Principia需要解决一个与__stdcall调用约定相关的编译器错误,通过更新pipeline.c中的typedef以使用GLAD函数原型来实现。
  • 在Windows XP虚拟机及真实硬件(一台配备AMD Phenom II的旧台式机)上测试确认二进制文件可运行,尽管可能存在因OpenGL驱动程序导致的字体损坏问题。
  • 构建后的改进包括将curl切换为使用mbedTLS以在XP上支持TLS,并创建NSIS安装程序以方便使用,相关脚本可在GitHub上找到。