执子之手

与子偕老


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索
close

如何在Mac上编译vcmi

时间: 2020-05-09   |   分类: 游戏     |   阅读: 1170 字 ~3分钟   |   访问: 0

vcmi是英雄无敌三的开源引擎。与fheroes2类似,它依托于英雄无敌3的游戏数据,使用完全重写、开源的引擎,实现了原版游戏的绝大多数功能。相比于原版游戏,对高清分辨率的支持也更好,譬如增加了宽屏分辨率的支持。vcmi使用c++语言编写,依赖库主要包括:boost,ffmpeg;图形库使用的是SDL2。另外,图形启动工具依赖于QT5。vcmi支持平台包括Windows,MacOS,Android和Linux,算是全平台支持了。

不过官方的发布系统好像有点问题,MacOS版本最新到2019年9月,后面的版本没有构建成功。

VCMI介绍图片

英雄无敌3,全称《魔法门之英雄无敌Ⅲ》,是1999年由New World Computing在Windows平台上开发的回合制策略魔幻游戏,其出版商是3DO。在PC版发布之后,3DO和Loki Software分别推出了可在苹果机和Linux系统上运行的版本。

该作是魔法门之英雄无敌系列的第三代。游戏情节参照第一次贯穿了《魔法门VI:天堂之令》,并且部分作为了《魔法门VII:血统与荣耀》的前传。玩家可以选择六个战役之中的一个来进行情节模式,也可以选择场景来进行与电脑或其他玩家的对抗。之后,又陆续发布了《末日之刃》、《死亡阴影》两个资料片,后来又发布了《英雄无敌历代记》共计8个战役。

英雄无敌3历来被称为英雄无敌系列的经典之作,可以说是这个系列游戏的巅峰之作。

vcmi的官网有编译方法的说明,但是有些小的地方有些小问题。特此记录一下,以备后查。本次编译使用cmake在命令行下面完成。需要确保已经安装了xcode及brew。

1. 依赖库安装

1# 安装sdl2,cmake,ffmpeg等
2brew install git cmake sdl2 sdl2_ttf sdl2_image boost ffmpeg minizip
3# 官网安装sdl2_mixer指定了 --with-smpeg2参数,在最新版本上该参数无效
4brew install sdl2_mixer
5# 安装qt5
6brew install qt5

配置环境变量。我使用的是zsh,所以编辑~/.zshrc增加如下内容:

1export PATH=/usr/local/opt/qt/bin:$PATH
2export LDFLAGS="-L/usr/local/opt/qt/lib"
3export CPPFLAGS="-I/usr/local/opt/qt/include"
4export PKG_CONFIG_PATH="/usr/local/opt/qt/lib/pkgconfig"

2. 下载源码

1# 创建工作目录
2mkdir -p ~/work/git/github && cd ~/work/git/github
3# 下载源码。使用--recursive下载所有依赖的源码库
4git clone --recursive  https://github.com/vcmi/vcmi.git
5# 创建一个编译用的工作目录 cmake
6mkdir cmake && cd cmake
7# 生成make文件
8cmake ../vcmi -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -Wno-devc

请确保之前已经安装好了依赖库,并设置好了环境变量,否则会提示找不到qt5相关的编译信息。

3. 编译

生成make文件之后就可以开始编译了。

1cd ~/work/git/github/cmake
2# 使用cmake编译
3cmake --build . -- -j 4

4. 打包

编译成功后,使用cpack打包,直接生成安装用的dmg文件。

1cd ~/work/git/github/cmake
2# 打包生成dmg文件
3cpack

5. 疑难问题解决

编译过程中碰到的问题通常是因为依赖包引起的。如果出现错误,需要仔细查看提示信息,确认跟什么有关系。 如果确认跟某个依赖包有关系,可以尝试brew remove, brew install重装依赖包,并仔细查看安装记录,确认是否有需要特殊配置的地方,并安装提示进行配置。

附录、参考资料

  • vcmi官网
  • vcmi github
  • Installation on MacOS
  • Build on MacOS
#Mac# #英雄无敌# #Heroes2# #HoMM#
如何在Mac上编译vcmi(续)-解决无法播放MP3的问题
如何在Mac上编译fheroes2
  • 文章目录
  • 站点概览
Orchidflower

Orchidflower

Do one thing at a time, and do well.

77 日志
6 分类
84 标签
GitHub 知乎 OSC 豆瓣
  • 1. 依赖库安装
  • 2. 下载源码
  • 3. 编译
  • 4. 打包
  • 5. 疑难问题解决
  • 附录、参考资料
© 2009 - 2024 执子之手
Powered by - Hugo v0.113.0
Theme by - NexT
ICP - 鲁ICP备17006463号-1
0%