Compiling for Windows on Linux/pl
To jest poradnik dla użytkowników Linuksa dotyczący kompilowania na Windows 32-bit.
Zanim zaczniesz, upewnij się, że umiesz kompilować czyste źródło na Linuksa!
Contents
Paczki
Najpierw zainstaluj poniższe paczki:
Szukaj tego w menedżerze: mingw32 mingw32-binutils mingw32-runtime
Ubuntu
Skopiuj to do adresu przeglądarki (Firefox)
apt:mingw32,mingw32-binutils,mingw32-runtime"
Jeśli nie działa, wklej to do terminalu:
sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
Debian
Wklej do terminalu:
su -c "apt-get install mingw32 mingw32-binutils mingw32-runtime"
Arch Linux
Wklej do terminalu:
su -c 'pacman -S mingw32-{gcc,binutils,runtime}
Biblioteki
Powder Toy potrzebuje wiele bibliotek. Istnieją 3 sposoby aby je pozyskać:
- Repozytorium paczek. Zwykle najłatwiejsza droga, ale nie każda dystrybucja Linuxa ma wersje MinGW paczek w swoich repozytoriach.
- Ściągnij i rozpakuj. Pamiętaj, że te wiki nie zawiera linków do wszystkich bibliotek.
- Kompiluj biblioteki samodzielnie. To może być trudne, ale istnieją skrypty które mogą Ci pomóc. Musisz użyć tej metody jeśli nie chcesz używać .dll w folderze z grą.
Potrzebne biblioteki:
- SDL
- bzip2
- pthread
- libregex (czasami libgnurx)
- Lua (opcjonalne, jeśli nie potrzebujesz usuń -DLUACONSOLE w Makefile)
- FFTW (opcjonalne, jeśli nie potrzebujesz usuń -DGRAVFFT w Makefile)
Opcja 1: Repozytoria
Używając tej metody potrzebujesz plików DLL do pracy. Zwykle są w folderze /bin w miejscu instalacji MinGW (np. /usr/i586-mingw32msvc/bin lub /usr/i686-w64-mingw32/bin).
'openSUSE
Kilka bibliotek znajdziesz tu: https://build.opensuse.org/project/show?project=windows%3Amingw%3Awin32 http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_11.4/
Opcja 2: Prekompilacja
Pobierz
Pobierz biblioteki (niekompletna lista, zaktualizuj jeśli znajdziesz więcej):
- SDL-devel-1.2.14-mingw32.tar.gz z http://www.libsdl.org/
- bzip2-1.0.6-4-mingw32-dev.tar.lzma z MinGW on SourceForge.
- mingw-libgnurx-2.5.1-dev.tar.gz z MinGW on SourceForge
Wypakuj
Rozpakowanie może zostać dokonane tylko jako użytkownik root!
GNOME:
gksudo nautilus
-LUB-
gksu -w nautilus
\\
XFCE używa Thunar zamiast Nautilus\\
KDE używa Konqueror i kdesudo zamiast gksudo.
Cel rozpakowania: /usr/i586-mingw32msvc (Arch Linux: /usr/i486-mingw32). Zezwól na nadpisania lub łączenie plików.
SDL-devel-1.2.14-mingw32.tar.gz
Rozpakuj bin, include i libs
bzip2-1.0.6-4-mingw32-dev.tar.lzma
Rozpakuj wszystko.
mingw-libgnurx-2.5.1-dev.tar.gz
Rozpakuj wszystko.
DLL
Te pliki DLL muszą być w folderze z twoją grą. Lub jeśli jesteś leniwy, po prostu każ im to skopiować z folderu oryginalnego Powder Toya lub podaj im linki do pobierania.
- http://tinyurl.com/sdldll - SDL.dll
- http://tinyurl.com/bz2dll - libbz2-2.dll
- http://tinyurl.com/grxdll - libgnurx-0.dll
Opcja 3: Budowanie z kodu źródłowego
Użyj tej metody jeśli nie chcesz plików DLL.
Skrypt ze wszystkimi komendami potrzebnymi do kompilacji: https://raw.github.com/jacksonmj/The-Powder-Toy/master/powder-cross-libs.sh
Zacznij z zmienianiem adresu plików do twojej aktualnej instalacji MinGW. Potem skompiluj i zainstaluj poniższe biblioteki(zostaną pobrane automatycznie)
./powder-cross-libs.sh make bzip2 fftw lua pthread regex sdl
sudo ./powder-cross-libs.sh install bzip2 fftw lua pthread regex sdl
Kompilacja
Kilka zmian w Makefile może być potrzebnych.
CC_WIN i WIN_RES powinny być zmienione. Te nazwy są różne w zależności od dystrybucji.
Arch Linux:
CC_WIN := i486-mingw32-gcc
WIN_RES := i486-mingw32-windres
Zamień wszystkie -llibregex na -llibgnurx
save, exit i cd do katalogu Powder Toya
make powder-sse.exe powder-sse2.exe powder-sse3.exe