DOSBox-X 项目编译指南:从源码构建跨平台DOS模拟器

DOSBox-X 项目编译指南:从源码构建跨平台DOS模拟器

前言

DOSBox-X 是一个功能丰富的 DOS 模拟器项目,它基于经典的 DOSBox 项目进行了大量扩展和改进。本文将详细介绍如何从源代码构建 DOSBox-X,涵盖 Windows、Linux、macOS 和 DOS 等多个平台。

编译环境准备

跨平台通用要求

  1. C++编译器:需要支持 C++11 标准的编译器
  2. SDL 库:支持 SDL 1.x 或 2.x 版本(SDL1 需要使用项目内修改版)
  3. 构建工具:如 make、autotools 等
  4. NASM:x86 汇编器,用于处理部分低层代码

Windows 平台编译

Visual Studio 方案

适用系统:Windows Vista 及以上版本(包括 Windows 11/10/8/7)

步骤

  1. 安装 Visual Studio 2017/2019/2022
  2. 安装 DirectX 2010 SDK(如需 Direct3D9 支持)
  3. 打开 ./vs/dosbox-x.sln 解决方案文件
  4. 选择目标平台(Win32/x64/ARM/ARM64)
  5. 选择 SDL 版本(SDL1 或 SDL2)
  6. 构建项目

特殊注意事项

  • Windows XP 支持需要额外步骤:
    • 使用 VS2017 工具集(v141)
    • 构建后使用 PatchPE.exe 工具修改 PE 头

MinGW 方案

分类构建指南

  1. 现代系统构建(Win7+)

    # 32位环境准备
    pacman -S git make mingw-w64-i686-toolchain mingw-w64-i686-libslirp mingw-w64-i686-nasm
    
    # 64位环境准备
    pacman -S git make mingw-w64-x86_64-toolchain mingw-w64-x86_64-libslirp mingw-w64-x86_64-nasm
    
    # 构建命令
    ./build-mingw        # SDL1版本
    ./build-mingw-sdl2   # SDL2版本
    
  2. 旧系统构建(WinXP)

    • 需使用特殊工具链(非MinGW-w64)
    • 构建命令:
      ./build-mingw-lowend    # SDL1版本
      ./build-mingw-lowend-sdl2 # SDL2版本
      
  3. Win9x/NT4构建

    • 需使用专门适配的工具链
    • 构建命令:
      ./build-mingw-lowend9x
      

Linux 平台编译

通用构建流程

# 获取源码
git clone https://github.com/joncampbell123/dosbox-x.git
cd dosbox-x

# SDL1版本构建
./build-debug
sudo make install

# SDL2版本构建
./build-debug-sdl2
sudo make install

发行版特定指南

Ubuntu/Debian

sudo apt install automake g++ make libncurses-dev nasm libsdl-net1.2-dev \
libpcap-dev libslirp-dev fluidsynth libfreetype-dev libxkbfile-dev

Fedora/RHEL

sudo dnf group install "C Development Tools and Libraries"
sudo dnf install SDL_net-devel ncurses-devel libpcap-devel libslirp-devel

创建RPM包

sudo dnf group install "RPM Development Tools"
./make-rpm.sh

macOS 平台编译

标准构建

前提条件

  • Xcode 命令行工具
  • Homebrew/MacPorts
# 使用Homebrew安装依赖
brew install autoconf automake nasm glfw fluid-synth libslirp

# 原生构建
./build-macos      # SDL1版本
./build-macos-sdl2 # SDL2版本

# 生成应用包
make dosbox-x.app

通用二进制构建(Apple Silicon)

./build-macos universal
./build-macos-sdl2 universal

旧系统支持(实验性)

# 使用MacPorts
sudo port install autoconf automake nasm glfw fluidsynth libslirp
./build-macosold

DOS 平台编译(HX-DOS)

特殊要求

  • 原始 MinGW 工具链(非 MinGW-w64)
./build-mingw-hx-dos

关键依赖库说明

  1. SDL:核心多媒体库(项目内修改版)
  2. Curses:调试器界面支持(ncurses/pdcurses)
  3. Libpng/Zlib:截图和存档功能
  4. FreeType:TrueType 字体支持
  5. FluidSynth:MIDI 音效支持
  6. 网络库
    • libpcap:NE2000 网络模拟
    • libslirp:另一种网络后端

配置选项详解

构建时可通过 ./configure 自定义功能:

# 启用功能示例
--enable-debug          # 启用调试器
--enable-d3d9           # 启用Direct3D9支持
--enable-alsa-midi      # 启用ALSA MIDI支持

# 禁用功能示例
--disable-x11           # 禁用X11集成
--disable-optimize      # 禁用编译器优化

常见问题解决

  1. Windows XP兼容性:必须使用VS2017并手动修补PE头
  2. ARM构建问题:需要特定Windows SDK版本(10.0.22621.0或更早)
  3. 旧系统构建:必须使用原始MinGW而非MinGW-w64
  4. 音频问题:尝试切换SDL版本(SDL1/SDL2)

结语

通过本文指南,您应能在各主流平台上成功构建DOSBox-X。根据目标平台和需求选择合适的构建方式,并注意各平台的特定要求。构建过程中如遇问题,可参考项目文档或调整配置选项进行排查。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁乐钧Gwendolyn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值