目錄
- 一、安裝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 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目錄下的文件
ls -al lib
會出現這樣一些文件,
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 命名),把相關庫文件復制到公共系統目錄中。
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
通過分析錯誤得到如下可能的原因:
- 文件與系統架構不兼容。
- 文件可能損壞。
- 文件沒有可執行權限。
- 依賴庫不完整。