Compiling for Windows on Linux/pl

From The Powder Toy
Jump to: navigation, search

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!

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):

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.


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