SimpleNES的编译与运行

本文档详细介绍了如何在Mac环境下构建和运行C++编写的NES模拟器SimpleNES,包括依赖安装、构建步骤、游戏下载、输入监视配置及解决可能出现的错误。在构建过程中,主要依赖于SFML图形库,遇到的问题主要是SFML库加载失败和模拟器按键无响应。通过brew安装SFML和配置终端输入监视,最终成功运行并享受经典nes游戏。
摘要由CSDN通过智能技术生成

前言

如题,最近搜索一些C++项目无意中看到它,然后就动手构建了一把,当然过程肯定会遇到一些问题的了。
不然也不会写这篇文章跟大家分享了呀,是吧!
来来来,先给大家show下我的劳动成果哈
在这里插入图片描述

构建环境说明

系统:
在这里插入图片描述
终端环境: iterm + zsh

成功构建步骤

第一步:下载原码

git clone https://github.com/amhndu/SimpleNES.git

第二步:安装依赖

在这里插入图片描述
如上图所示,SimpleNES是依赖SFML这个图形库的,所以我们在构建之前需要依赖它,这里用brew来安装(最好是用brew来安装,如果是手机下载SFML的话,需要手机处理构建时找不到SFML的问题)

brew install sfml

第三步:构建

git clone https://github.com/amhndu/SimpleNES
cd SimpleNES
# 进入SimpleNES的根目录,如果该目录下已经有了build目录,可以直接cd进去,然后rm清空里边的文件
mkdir build/ && cd build/
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4 

构建成功后,build目录会有一个可执行文件SimpleNES (先不要急着运行它!)
在这里插入图片描述

第四步:下载游戏

可以到这里去 nes游戏下载(wowroms.com)下载游戏,或到上传的资源下去>>点这里下载
在这里插入图片描述

第五步:配置输入监视

由于我们上面构建出来的是一个终端下的可执行文件,我们待会需要在终端下运行了,所以需要给终端配置输入监视
否侧SimpleNES将接收不到键盘事件!(由于给了终端配置权限,所以在终端下启动的应用也就拥有了同样的权限)
在这里插入图片描述

第六步:运行

# 在build目录下启动, nes游戏文件的路径需要根据你下载文件的具体路径做调整
./SimpleNES ~/Downloads/Super\ Mario\ Bros.\ \(World\).nes

可能会遇到的问题

运行时SFML库加载失败

直接下SFML的SDK并解压,而在构建脚本时候配置好SFML的搜索路径后,能正常构建。但SimpleNES启动后会弹窗标示SFML相关的库加载失败。这个需要通过brew安装SFML,让SFML的库安装到系统用户库的目录下
在这里插入图片描述
端终下将会出现如下的提示

$ ./SimpleNES
dyld: Library not loaded: @rpath/libsfml-audio.2.5.dylib
  Referenced from: /Users/luogw/study/code/SimpleNES/build/./SimpleNES
  Reason: no suitable image found.  Did find:
 /Users/luogw/Downloads/SFML-2.5.1-macos-clang/lib/libsfml-audio.2.5.dylib: code signature in (/Users/luogw/Downloads/SFML-2.5.1-macos-clang/lib/libsfml-audio.2.5.dylib) not valid for use in process using Library Validation: library load disallowed by system policy
 /Users/luogw/Downloads/SFML-2.5.1-macos-clang/lib/libsfml-audio.2.5.dylib: stat() failed with errno=1
[1]    12120 abort      ./SimpleNES

模拟器按键无响应

就是没有配置输入监视,如果启动后按任何按键模拟器都没有任何响应,如何终端下会有如下的提示

We got a keyboard without any keys (1)

参考文档

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值