VCMI项目在Linux系统下的编译指南

VCMI项目在Linux系统下的编译指南

vcmi Open-source engine for Heroes of Might and Magic III vcmi 项目地址: https://gitcode.com/gh_mirrors/vc/vcmi

前言

VCMI是一个开源的英雄无敌3游戏引擎重制项目,本文将详细介绍如何在Linux系统下编译VCMI项目。对于想要参与开发或自行构建VCMI的Linux用户,本指南将提供完整的编译流程和注意事项。

系统要求

基础环境要求

  • 推荐使用Ubuntu 20.04或更高版本作为基础系统
  • 支持的C++编译器:
    • GCC 9及以上版本
    • Clang 13及以上版本

虽然理论上更旧的发行版和编译器也能工作,但它们没有经过持续集成系统的完整测试。

依赖安装

核心依赖项

编译VCMI需要以下核心开发包:

  • CMake构建系统
  • SDL2及其开发组件:mixer、image、ttf
  • zlib压缩库及其开发包
  • Boost C++库1.48+版本,需要以下组件:
    • program-options
    • filesystem
    • system
    • thread
    • locale

可选依赖项

  • 图形界面工具:如需构建启动器或地图编辑器,需要Qt5的widget和network模块
  • 视频播放:如需观看游戏内视频,需要FFmpeg相关库:
    • libavformat
    • libswscale
  • 脚本支持:如需构建脚本模块,需要LuaJIT
  • 编译加速:可使用Ccache加速重新编译过程

各发行版安装命令

Debian/Ubuntu系统
sudo apt-get install cmake g++ clang libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-dev zlib1g-dev libavformat-dev libswscale-dev libboost-dev libboost-filesystem-dev libboost-system-dev libboost-thread-dev libboost-program-options-dev libboost-locale-dev libboost-iostreams-dev qtbase5-dev libtbb-dev libluajit-5.1-dev liblzma-dev libsqlite3-dev qttools5-dev ninja-build ccache

如果已通过仓库安装过VCMI,可简化安装:

sudo apt-get build-dep vcmi
Fedora等RPM系统
sudo yum install cmake gcc-c++ SDL2-devel SDL2_image-devel SDL2_ttf-devel SDL2_mixer-devel boost boost-devel boost-filesystem boost-system boost-thread boost-program-options boost-locale boost-iostreams zlib-devel ffmpeg-free-devel qt5-qtbase-devel qt5-qttools-devel tbb-devel luajit-devel xz-devel sqlite-devel ccache
NixOS/Nix系统

推荐使用nix-shell环境。创建shell.nix文件:

with import <nixpkgs> {};
stdenv.mkDerivation {
  name = "build";
  nativeBuildInputs = [ cmake ];
  buildInputs = [
    cmake clang clang-tools llvm ccache ninja
    boost zlib minizip xz
    SDL2 SDL2_ttf SDL2_net SDL2_image SDL2_sound SDL2_mixer SDL2_gfx
    ffmpeg tbb vulkan-headers libxkbcommon
    qt6.full luajit
  ];
}

放入构建目录后执行:

nix-shell

源代码获取

建议采用以下目录结构:

.
├── vcmi    # 源代码目录,使用git管理
└── build   # 构建输出目录

获取最新开发分支代码:

git clone -b develop --recursive <源码仓库地址>

编译过程

配置构建系统

mkdir build
cd build
cmake -S ../vcmi

注意:../vcmi参数不是错误,它会在build目录中生成Makefile。

执行编译

cmake --build . -j8

其中-j8表示使用8个线程并行编译,可根据CPU核心数调整。

编译完成后,会在build/bin/目录下生成以下可执行文件:

  • vcmiclient
  • vcmiserver
  • vcmilauncher
  • 相关.so库文件

打包指南

RPM打包(Fedora为例)

  1. 准备RPM构建环境
  2. 启用RPMFusion仓库获取FFmpeg库:
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
  1. 获取对应Fedora版本的VCMI spec文件
  2. 将文件复制到RPM构建目录
  3. 获取源码和依赖:
spectool -g -R ~/rpmbuild/SPECS/vcmi.spec
sudo dnf builddep ~/rpmbuild/SPECS/vcmi.spec
  1. 执行构建:
rpmbuild -ba ~/rpmbuild/SPECS/vcmi.spec
  1. 生成的RPM包位于~/rpmbuild/RPMS

Debian/Ubuntu打包

  1. 安装打包工具:
sudo apt-get install debhelper devscripts
  1. 在源码目录执行:
dpkg-buildpackage

可使用-a参数为不同架构生成包。

常见问题

  1. 编译失败:首先检查所有依赖是否安装正确,特别是Boost库的版本
  2. 视频无法播放:确认FFmpeg相关库已正确安装
  3. 性能问题:使用Ccache可以显著加速后续编译过程

通过本指南,您应该能够成功在Linux系统上构建VCMI项目。如需更高级的配置选项,可参考项目的CMake文档。

vcmi Open-source engine for Heroes of Might and Magic III vcmi 项目地址: https://gitcode.com/gh_mirrors/vc/vcmi

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

伍盛普Silas

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

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

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

打赏作者

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

抵扣说明:

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

余额充值