Ubuntu下编译mininim游戏全攻略

目录

一、安装mininim 软件所依赖的库(重点是allegro游戏引擎库)

1. 用apt-get remove命令清除干净之前可能安装过的各项allegro5依赖库(如果系统没有这些库,也不报错)

bash 复制代码
sudo apt-get remove liballegro5-dev liballegro-image5-dev liballegro-audio5-dev liballegro-acodec5-dev liballegro-dialog5-dev

2.用apt-get install 命令安装各种make、gcc等编译工具链软件(以防Ubuntu系统没有,如果已用有,则会自动下载更新到合适版本或最新版本),gnulib和lua50库等。

bash 复制代码
sudo apt-get install automake autoconf gcc make cmake gnulib libcanberra-gtk-module lua50 liblua50-dev liblualib50-dev libreadline-dev

3.用 apt-get build-dep 命令检测 allegro5游戏库的环境依赖是否完整 ,自动下载必要的依赖项,为编译 Allegro5 源码做好环境准备。注意这条命令并不下载 从仓库中下编译好的allegro5库!

bash 复制代码
sudo apt-get build-dep allegro5

如果前面都顺利完成,遇到的缺少xx包的提示,你都已经通过 apt-get install xx 的方式解决,那么就可以进行到下面最关键的步骤。

4. 从git源码仓库下载mininim 需要的allegro5.x 版本源码。

这个mininim游戏代码latest版本是2017年,作者使用的是当时的 allegro5.2.3 版本(当前2025年最新版本是5.2.10),作者为此特意fork保留了一份allegro5.2.3 版本代码。但是经过验证发现:这个allegro5.2.3 版本在ubuntu18.04存在自身编译错误,而最新版本allegro5.2.10与mininim也不匹配。只有allegro5.2.5版本能够与mininim适配。因此,这里不能按照mininim作者的readme指导下载( 不使用 git clone https://github.com/oitofelix/allegro5.git 这条命令)。

所以需要使用国内gitee平台上转存的官方的 allegro5.2.5版本。

bash 复制代码
 cd /home/xxx,  xxx是你的实际用户名。
 pwd
 #应该输出为:
 /home/xxx
 #如果不是检查目前所在目录是否正确

5.用 git命令克隆 我备份的的allegro5.2.5版本完整源码:

bash 复制代码
git clone https://gitee.com/flycloud2009_cloudlou/allegro5_v5.2.5.git

然后,先cd 进入游戏源代码主目录下, 再ls 显示一下目录中的文件, 你会看见文件中有一个 CMakeLists.txt 文件,但是没有 Makefile 文件。
CMakeLists.txt 是cmake工具的默认输入文件,cmake读取CMakeLists.txt内容,进行各项检查配置,如果没有中间出错提示,将会在cmake运行工作目录下成功生成一个 Makefile文件。 这个Makefile文件是下一步 make工具的默认输入文件

bash 复制代码
cd allegro5_v5.2.5
ls -l

在此目录下,创建 一个 build 子目录以及cd 进入 build子目录中

bash 复制代码
mkdir build && cd build 

在这里,验证一下你当前所在的工作目录,作目录应该是:

bash 复制代码
/home/xxx/Documents/allegro5_v5.2.5/build
ls -l

ls 显示build目录下空空如也。没有任何目录和文件。
然后进入 Linux系统 代码编译流程的常规第一步: cmake 配置代码编译依赖环境。

先运行cmake, 注意后面 带的参数是两个 ..., ... 代表上一级目录,这条命令是然 cmake 读取上一级目录下的 CMakeLists.txt 文件。

bash 复制代码
cmake .. 

耐心等待,并注意观察屏幕输出的信息。如果出现错误,cmake会停止工作,从第一条error错误信息进行分析,一般都是缺乏xx库,建议你 sudo apt install xx,你只需要按照提示进行即可。

如果问题都解决了, cmake 会运行完,一般会出现 configure done或类似信息。

此时,在当前目录build 下,你在 ls -l 一下,会看见出现许多目录和文件,其中就用 Makefile文件,文件日期是最新时间。

有了 Makefile文件,就可以进入Linux系统 代码编译流程的常规第二步: make 从源码生成二进制库或可执行文件

bash 复制代码
make

make命名后面不带参数,则表示读取当前目录下的Makefile文件。

又需要耐心等待,并注意观察屏幕输出的信息。如果出现错误,make会停止工作,从第一条编译error错误信息进行分析。 如果错误出现在某一个代码文件中xx行某个变量或函数,检查前面步骤是否有遗漏,工作目录、操作命令是否正确。

如果make 成功完成 (没有出现错误信息),在build目录下就会生成lib和include等子目录,如下:

bash 复制代码
lyy@lyy-virtual-machine:~/allegro5-5.2.5.0/build$ ls -al
total 332
drwxrwxr-x 10 lyy  lyy    4096 5月  15 18:02 .
drwxrwxr-x 16 lyy  lyy    4096 5月  15 17:54 ..
drwxrwxr-x 15 lyy  lyy    4096 5月  15 17:54 addons
-rw-rw-r--  1 lyy  lyy   58293 5月  15 17:54 CMakeCache.txt
drwxrwxr-x  6 lyy  lyy    4096 5月  15 18:02 CMakeFiles

lib目录中主要是allegro5 的各种库,主要是动态库,已经成功创建。文件名一般是 liballegroxxx.so.5.2.5 ,如果你用ls 查看 lib目录下的文件

bash 复制代码
 ls -al lib

会出现这样一些文件,

bash 复制代码
lrwxrwxrwx  1 lyy lyy      24 5月  15 17:55 liballegro_acodec.so -> liballegro_acodec.so.5.2
lrwxrwxrwx  1 lyy lyy      26 5月  15 17:55 liballegro_acodec.so.5.2 -> liballegro_acodec.so.5.2.5
-rwxrwxr-x  1 lyy lyy  221560 5月  15 17:55 liballegro_acodec.so.5.2.5
lrwxrwxrwx  1 lyy lyy      23 5月  15 17:55 liballegro_audio.so -> liballegro_audio.so.5.2
lrwxrwxrwx  1 lyy lyy      25 5月  15 17:55 liballegro_audio.so.5.2 -> liballegro_audio.so.5.2.5
-rwxrwxr-x  1 lyy lyy  435744 5月  15 17:55 liballegro_audio.so.5.2.5
lrwxrwxrwx  1 lyy lyy      23 5月  15 17:55 liballegro_color.so -> liballegro_color.so.5.2
lrwxrwxrwx  1 lyy lyy      25 5月  15 17:55 liballegro_color.so.5.2 -> liballegro_color.so.5.2.5
-rwxrwxr-x  1 lyy lyy   74840 5月  15 17:55 liballegro_color.so.5.2.5

重点注意是否生成 liballegro.so.5.2.5,liballegro_dialog.so.5.2.5,liballegro_image.so.5.2.5,liballegro_video.so.5.2.5,liballegro_primitives.so.5.2.5 文件。

这些库只是保存在build目录,需要将它们安装到 ubuntu系统的公共目录中 (一般是 /usr/local/lib等目录下)。

运行下面命令,make 会按照Makefile中 install对应的项目规则(主要是一些 cp 命名),把相关库文件复制到公共系统目录中。

bash 复制代码
sudo make install

安装游戏引擎allegro5 (准确是5.2.5 版本)就完成了。 为了稳妥起见,可以运行一下上面make编译 allegro5.2.5 库时,它顺带编译生成的一些demo游戏程序,看是否能正常运行。

做法如下,进入examples目录,选择一个程序运行:

bash 复制代码
cd examples

./ex_multiwin 

如果程序出现窗口,表示代码正常运行,就可以退出了。

二、编译mininim 软件

接着上面的步骤继续。 下载mininim仓库源码,进行编译。 此时你的工作目标应该重新返回到home目录下

bash 复制代码
cd  /home/xxx

然后下载mininim仓库源码。

bash 复制代码
git clone https://gitee.com/flycloud2009_cloudlou/mininim.git

下载成功后,进入游戏目录,进行环境准备(运行作者写的脚本文件 bootstrap),执行常规的环境依赖配置(运行作者写的configure)

bash 复制代码
./bootstrap
./configure LUA_LIB="-llua50 -llualib50"

如果上面都没有出错,目录下将生成 Makefile 文件。

正式编译 mininim 源代码:

bash 复制代码
make

耐心等待。如果没有出错,当前目录下 出现一个游戏程序文件 mininim,运行它

bash 复制代码
./mininim

此时你可以参看一下 mininim 具体依赖哪些动态支持库,运行

bash 复制代码
ldd ./mininim

显示信息类似这样

bash 复制代码
linux-vdso.so.1 (0x00007ffdb15c3000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007faa84fc6000)
libreadline.so.7 => /lib/x86_64-linux-gnu/libreadline.so.7 (0x00007faa84d7d000)
liballegro.so.5.2 => /usr/local/lib/liballegro.so.5.2 (0x00007faa84a7d000)
liballegro_image.so.5.2 => /usr/local/lib/liballegro_image.so.5.2 (0x00007faa8486f000)
liballegro_audio.so.5.2 => /usr/local/lib/liballegro_audio.so.5.2 (0x00007faa84653000)
liballegro_acodec.so.5.2 => /usr/local/lib/liballegro_acodec.so.5.2 (0x00007faa84447000)
liballegro_font.so.5.2 => /usr/local/lib/liballegro_font.so.5.2 (0x00007faa8423d000)
liballegro_primitives.so.5.2 => /usr/local/lib/liballegro_primitives.so.5.2 (0x00007faa84028000)
liballegro_dialog.so.5.2 => /usr/lib/x86_64-linux-gnu/liballegro_dialog.so.5.2 (0x00007faa83e1b000)

如果运行 mininim 不报错,那么就应该看到游戏第一关界面

三、将mininim打包给另一个Ubuntu系统使用

1.将mininim整个文件压缩成.zip文件,发送到Windows系统当作转站,又由Win系统发送到另一个Ubuntu系统,也可通过文件传输软件比如FileZilla Client更方便传输;

2.在2号Ubuntu中提取mininim.zip文件,在终端cd到运行程序mininim所在目录,运行命令

bash 复制代码
./mininim

发现打包的文件并没有顺利运行,因为环境配置不足的问题而无法加载模型,所以仍然需要按照上面的环境配置和游戏配置的步骤,让游戏得以运行。

四、安卓手机运行mininim

1.把Mininim文件打包发送到安卓手机上,运行命令解压该mininim.tar.xz文件:

bash 复制代码
xz -d mininim.tar.xz
tar -xvf mininim.tar

cd到mininim运行程序目录下,运行命令:

bash 复制代码
./mininim

出现如下问题

bash 复制代码
~/downloads/mininim-200927-gnu-linux64 $ ./mininim                                              
./mininim: line 14: 
/data/data/com.termux/files/home/downloads/mininim-200927-gnu-linux64/lib/mininim: cannot execute binary file: Exec format error

通过分析错误得到如下可能的原因:

  1. 文件与系统架构不兼容。
  2. 文件可能损坏。
  3. 文件没有可执行权限。
  4. 依赖库不完整。
相关推荐
独行soc11 分钟前
2025年渗透测试面试题总结-匿名[校招]高级安全工程师(代码审计安全评估)(题目+回答)
linux·安全·web安全·面试·职场和发展·渗透测试
LB211234 分钟前
Maven(黑马)
linux·服务器·maven
alex18011 小时前
ubuntu磁盘挂载
linux·数据库·ubuntu
Stardep1 小时前
Linux下目录递归拷贝的单进程实现
linux·运维·服务器·实验
hawk2014bj1 小时前
KVM 安装 Ubuntu 22
linux·运维·ubuntu
nako_sayuri1 小时前
Linux进程间通信----简易进程池实现
linux·服务器·进程池
藥瓿亭2 小时前
Vim常用快捷键
linux·ubuntu·centos·vim
Zfox_2 小时前
【C++项目】:仿 muduo 库 One-Thread-One-Loop 式并发服务器
linux·服务器·c++·muduo库
小峰编程3 小时前
rsync服务的搭建
linux·运维·服务器·云原生·centos·服务搭建
零K沁雪3 小时前
Linux C 优雅的执行命令
linux·c语言