Ubuntu下编译mininim游戏全攻略

news2025/6/3 17:29:44

目录

    • 一、安装mininim 软件所依赖的库(重点是allegro游戏引擎库)
    • 二、编译mininim 软件
    • 三、将mininim打包给另一个Ubuntu系统使用
    • 四、安卓手机运行mininim

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

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

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库等。

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库!

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版本。

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

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

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工具的默认输入文件

cd allegro5_v5.2.5
ls -l

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

mkdir build && cd build 

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

/home/xxx/Documents/allegro5_v5.2.5/build
ls -l

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

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

cmake .. 

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

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

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

make

make命名后面不带参数,则表示读取当前目录下的Makefile文件。
又需要耐心等待,并注意观察屏幕输出的信息。如果出现错误,make会停止工作,从第一条编译error错误信息进行分析。 如果错误出现在某一个代码文件中xx行某个变量或函数,检查前面步骤是否有遗漏,工作目录、操作命令是否正确。
如果make 成功完成 (没有出现错误信息),在build目录下就会生成lib和include等子目录,如下:

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

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

 ls -al lib

会出现这样一些文件,

lrwxrwxrwx  1 lyy lyy      24 515 17:55 liballegro_acodec.so -> liballegro_acodec.so.5.2
lrwxrwxrwx  1 lyy lyy      26 515 17:55 liballegro_acodec.so.5.2 -> liballegro_acodec.so.5.2.5
-rwxrwxr-x  1 lyy lyy  221560 515 17:55 liballegro_acodec.so.5.2.5
lrwxrwxrwx  1 lyy lyy      23 515 17:55 liballegro_audio.so -> liballegro_audio.so.5.2
lrwxrwxrwx  1 lyy lyy      25 515 17:55 liballegro_audio.so.5.2 -> liballegro_audio.so.5.2.5
-rwxrwxr-x  1 lyy lyy  435744 515 17:55 liballegro_audio.so.5.2.5
lrwxrwxrwx  1 lyy lyy      23 515 17:55 liballegro_color.so -> liballegro_color.so.5.2
lrwxrwxrwx  1 lyy lyy      25 515 17:55 liballegro_color.so.5.2 -> liballegro_color.so.5.2.5
-rwxrwxr-x  1 lyy lyy   74840 515 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 命名),把相关库文件复制到公共系统目录中。

sudo make install

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

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

cd examples

./ex_multiwin 

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

二、编译mininim 软件

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

cd  /home/xxx

然后下载mininim仓库源码。

git clone https://gitee.com/flycloud2009_cloudlou/mininim.git

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

./bootstrap
./configure LUA_LIB="-llua50 -llualib50"

如果上面都没有出错,目录下将生成 Makefile 文件。
正式编译 mininim 源代码:

make

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

./mininim

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

ldd ./mininim

显示信息类似这样

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所在目录,运行命令

./mininim

在这里插入图片描述

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

四、安卓手机运行mininim

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

xz -d mininim.tar.xz
tar -xvf mininim.tar

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

./mininim

出现如下问题

~/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. 依赖库不完整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2395036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp uni-id Error: Invalid password secret

common文件夹下uni-config-center文件夹下新建uni-id,新建config.json文件 复制粘贴以下代码,不要自己改,格式容易错 {"passwordSecret": [{"type": "hmac-sha256","version": 1}], "passwordStrength&qu…

第十二节:第三部分:集合框架:List系列集合:特点、方法、遍历方式、ArrayList集合的底层原理

List系列集合特点 List集合的特有方法 List集合支持的遍历方式 ArrayList集合的底层原理 ArrayList集合适合的应用场景 代码:List系列集合遍历方式 package com.itheima.day19_Collection_List;import java.util.ArrayList; import java.util.Iterator; import jav…

【办公类-18-07】20250527屈光检查PDF文件拆分成多个pdf(两页一份,用幼儿班级姓名命名文件)

背景需求: 今天春游,上海海昌公园。路上保健老师收到前几天幼儿的屈光视力检查单PDF。 她说:所有孩子的通知都做在一个PDF里,我没法单独发给班主任。你有什么办法拆开来? 我说:“没问题,问deep…

AI Agent的“搜索大脑“进化史:从Google API到智能搜索生态的技术变革

AI Agent搜索革命的时代背景 2025年agent速度发展之快似乎正在验证"2025年是agent元年"的说法,而作为agent最主要的应用工具之一(另外一个是coding),搜索工具也正在呈现快速的发展趋势。Google在2024年12月推出Gemini Deep Research&#xff0…

Arduino学习-跑马灯

1、效果 2、代码 /**** 2025-5-30 跑马灯的小程序 */ //时间间隔 int intervaltime200; //初始化函数 void setup() {// put your setup code here, to run once://设置第3-第7个引脚为输出模式for(int i3;i<8;i){pinMode(i,OUTPUT);} }//循环执行 void loop() {// put you…

2. 手写数字预测 gui版

2. 手写数字预测 gui版 背景1.界面绘制2.处理图片3. 加载模型4. 预测5.结果6.一点小问题 背景 做了手写数字预测的模型&#xff0c;但是老是跑模型太无聊了&#xff0c;就配合pyqt做了一个可视化界面出来玩一下 源代码可以去这里https://github.com/Leezed525/pytorch_toy拿 …

特别篇-产品经理(三)

一、市场与竞品分析—竞品分析 1. 课后总结 案例框架&#xff1a;通过"小新吃蛋糕"案例展示行业分析方法&#xff0c;包含四个关键步骤&#xff1a; 明确目标行业调研确定竞品分析竞争策略输出结论 1&#xff09;行业背景分析方法 PEST分析法&#xff1a;从四个…

【unity游戏开发——编辑器扩展】AssetDatabase公共类在编辑器环境中管理和操作项目中的资源

注意&#xff1a;考虑到编辑器扩展的内容比较多&#xff0c;我将编辑器扩展的内容分开&#xff0c;并全部整合放在【unity游戏开发——编辑器扩展】专栏里&#xff0c;感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言一、AssetDatabase常用API1、创建资源1.1 API1.2 示例 …

BLE协议全景图:从0开始理解低功耗蓝牙

BLE(Bluetooth Low Energy)作为一种针对低功耗场景优化的通信协议,已经广泛应用于智能穿戴、工业追踪、智能家居、医疗设备等领域。 本文是《BLE 协议实战详解》系列的第一篇,将从 BLE 的发展历史、协议栈结构、核心机制和应用领域出发,为后续工程实战打下全面认知基础。 …

【机器学习基础】机器学习入门核心算法:GBDT(Gradient Boosting Decision Tree)

机器学习入门核心算法&#xff1a;GBDT&#xff08;Gradient Boosting Decision Tree&#xff09; 1. 算法逻辑2. 算法原理与数学推导2.1 目标函数2.2 负梯度计算2.3 决策树拟合2.4 叶子权重计算2.5 模型更新 3. 模型评估评估指标防止过拟合 4. 应用案例4.1 金融风控4.2 推荐系…

基于开源AI大模型AI智能名片S2B2C商城小程序源码的销售环节数字化实现路径研究

摘要&#xff1a;在数字化浪潮下&#xff0c;企业销售环节的转型升级已成为提升竞争力的核心命题。本文基于清华大学全球产业研究院《中国企业数字化转型研究报告&#xff08;2020&#xff09;》提出的“提升销售率与利润率、打通客户数据、强化营销协同、构建全景用户画像、助…

Spring Cache核心原理与快速入门指南

文章目录 前言一、Spring Cache核心原理1.1 架构设计思想1.2 运行时执行流程1.3 核心组件协作1.4 关键机制详解1.5 扩展点设计1.6 与Spring事务的协同 二、快速入门实战三、局限性3.1 多级缓存一致性缺陷3.2 分布式锁能力缺失3.3 事务集成陷阱 总结 前言 在当今高并发、低延迟…

Redisson学习专栏(四):实战应用(分布式会话管理,延迟队列)

文章目录 前言一、为什么需要分布式会话管理&#xff1f;1.1 使用 Redisson 实现 Session 共享 二、订单超时未支付&#xff1f;用延迟队列精准处理2.1 RDelayedQueue 核心机制2.2 订单超时处理实战 总结 前言 在现代分布式系统中&#xff0c;会话管理和延迟任务处理是两个核心…

java程序从服务器端到Lambda函数的迁移与优化

source&#xff1a;https://www.jfokus.se/jfokus24-preso/From-Serverful-to-Serverless-Java.pdf 从传统的服务器端Java应用&#xff0c;到如今的无服务器架构。这不仅仅是技术名词的改变&#xff0c;更是开发模式和运维理念的一次深刻变革。先快速回顾一下我们熟悉的“服务…

使用yocto搭建qemuarm64环境

环境 yocto下载 # 源码下载 git clone git://git.yoctoproject.org/poky git reset --hard b223b6d533a6d617134c1c5bec8ed31657dd1268 构建 # 编译镜像 export MACHINE"qemuarm64" . oe-init-build-env bitbake core-image-full-cmdline 运行 # 跑虚拟机 export …

Linux系统下安装配置 Nginx

Windows Nginx https://nginx.org/en/download.htmlLinux Nginx https://nginx.org/download/nginx-1.24.0.tar.gz解压 tar -zxvf tar -zxvf nginx-1.18.0.tar.gz #解压安装依赖&#xff08;如未安装&#xff09; yum groupinstall "Development Tools" -y yum…

LiveGBS作为下级平台GB28181国标级联2016|2022对接海康大华宇视华为政务公安内网等GB28181国标平台查看级联状态及会话

LiveGBS作为下级平台GB28181国标级联2016|2022对接海康大华宇视华为政务公安内网等GB28181国标平台查看级联状态及会话 1、GB/T28181级联概述2、搭建GB28181国标流媒体平台3、获取上级平台接入信息3.1、向下级提供信息3.2、上级国标平台添加下级域3.3、接入LiveGBS示例 4、配置…

Gartner《2025 年软件工程规划指南》报告学习心得

一、引言 软件工程领域正面临着前所未有的变革与挑战。随着生成式人工智能(GenAI)等新兴技术的涌现、市场环境的剧烈动荡以及企业对软件工程效能的更高追求,软件工程师们必须不断适应和拥抱变化,以提升自身竞争力并推动业务发展。Gartner 公司发布的《2025 年软件工程规划…

Java Class类文件结构

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

quasar electron mode如何打包无边框桌面应用程序

预览 开源项目Tokei Kun 一款简洁的周年纪念app&#xff0c;现已发布APK&#xff08;安卓&#xff09;和 EXE&#xff08;Windows&#xff09; 项目仓库地址&#xff1a;Github Repo 应用下载链接&#xff1a;Github Releases Preparation for Electron quasar dev -m elect…