# apt-get install arm-linux-gnueabihf-gcc arm-linux-gnueabihf-g++ arm-linux-gnueabihf-cpp由於我們是要編譯 Arm 版的 mame 所以需要安裝的是armhf的編譯套件。
接下來開始編譯進入 Mame 的部份
$ mkdir mame && cd mame $ wget http://mamedev.org/downloader.php?file=releases/mame0159s.zip $ unzip mame0159s.zip $ unzip mame.zip這時候會把 Mame-0.159 的編譯檔案都解出來在 mame資料夾中
再來做第一次編譯
$ make有可能會遇到下列問題:
Mame_Error 1. alsa的函式庫未安裝,解決方法如下:
# apt-get install libasound2-devMame_Error 2. moc error ,解決方法如下:
# apt-get install automocMame_Error 3.
src/osd/sdl/sdlinc.h:5:22: fatal error: SDL2/SDL.h: 沒有此一檔案或目錄 compilation terminated. make: *** [obj/sdl/osd/sdl/sdlos_unix.o] Error 1這個問題是因為 Mame編譯時需要用到SDL2,而Cubieboard的套件只有SDL1的關係,所以我們必須自行編譯SDL2,解決方法如下:
$ mkdir SDL2 && cd SDL2 $ wget http://www.libsdl.org/release/SDL2-2.0.3.tar.gz $ tar xfva SDL2-2.0.3.tar.gz && cd SDL2-2.0 $ ./configure在configure中會出現 dbus 的 warning ,解決方法如下:
# apt-get install libdbus-1-dev接下來重新執行./configure後就可以進行make了,指令如下:
$ make allSDL2_Error 1 .
/home/cubie/SDL2/SDL2-2.0.3/src/render/opengles2/SDL_gles2funcs.h:70:1: error: unknown type name 'GLchar' make: *** [build/SDL_render_gles2.lo] Error解決方法如下:
先備份 /usr/include/GLES2/ 裡面的 gl2.h & gl2ext.h 檔案,然後到下列網站下載新的 gl2.h & gl2ext.h 檔。
http://blog.eldajani.net/banana-pi-arch-linux-snes-emulation-using-retroarch/解決之後 make 就會成功了,然後安裝SDL,指令如下:
# make install再來回到 Mame 的編譯
Mame_Error 4.
src/osd/modules/font/font_sdl.c:12:26: fatal error: SDL2/SDL_ttf.h: 沒有此一檔案或目錄 compilation terminated. make: *** [obj/sdl/osd/modules/font/font_sdl.o] Error 1這是因為SDL2的字型函式庫沒安裝,解決方法如下:
$ wget http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.12.tar.gz $ tar xfva SDL2_ttf-2.0.12.tar.gz $ cd SDL2_ttf-2.0.12 $ ./configure $ make all # make installMame_Error 5.
collect2: ld terminated with signal 9 [已砍掉] make: *** [mame] Error 1這個問題是因為編譯 Mame,把記憶體與 swap 用光造成崩潰的關係,所以我們必須手動增加 swap,指令如下:
# dd if=/dev/zero of=moreswap bs=1M count=512 # mkswap moreswap # swapon moreswap # swapon -s再來就能正常編譯了,編譯完會在 mame 的資料夾中出現 mame 的執行檔,最後把執行檔做 Soft Link 至 /usr/bin /usr/local/bin /usr/game/ 中就可以了。指令如下:
# ln -s ./mame /usr/bin/mame # ln -s ./mame /usr/local/bin/mame # ln -s ./mame /usr/game/mame