Kompilowanie MTASA: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
(→‎Podstawowe Wymagania: Update section)
Line 5: Line 5:
== Podstawowe Wymagania ==
== Podstawowe Wymagania ==


Powinieneś używać systemu Windows 7 lub nowszego, zanim będziesz mógł skompilować klienta Multi Theft Auto.
Kompilacja klienta Multi Theft Auto jest oficjalnie wspierana tylko na systemie Windows 10.


Upewnij się czy masz zainstalowane następujące programy i zestawy SDK:
Upewnij się czy masz zainstalowane następujące programy i zestawy SDK:


=== Visual Studio 2019 ===
=== Visual Studio 2022 ===
[[File:Visual_Studio_Community.PNG|left|150px|link=https://www.visualstudio.com/vs/]]
[[File:Visual_Studio_Community.PNG|right|150px|link=https://www.visualstudio.com/vs/]]
'''Pobieranie'''
# '''[https://visualstudio.microsoft.com/vs/ Microsoft Visual Studio 2022]''' (Edycja Community jest darmowa).
[https://visualstudio.microsoft.com/vs/ Microsoft Visual Studio 2019] (Edycja Community jest darmowa).<br>
# Na liście podczas instalacji, [[:File:VSFoundationClasses_PL.png|zaznacz te dwa pola]]
Upewnij się czy instalujesz także inne elementy podczas instalacji, patrz poniżej.
## ''Programowanie aplikacji klasycznych w języku C++''
(Możesz ponownie uruchomić instalator, aby zmodyfikować aktualną instalację bez konieczności odinstalowywania i instalowania.)<br>
## Opcjonalny komponent (po prawej stronie na liście) ''C++ MFC dla najnowszych narzędzi kompilacji w wersji 143 (x86 & x64)''


'''Missing #include "afxres.h"'''<br>
Jeśli nie zaznaczysz komponentu MFC to otrzymasz błąd <code>cannot open include file 'afxres.h'</code>
[[Media:VsFoundationClasses.png|Upewnij się, że masz zainstalowane wsparcie dla MFC i ATL.]] MFC/ATL musi być w wersji 141 (v141).<br>
Jeśli popełnisz błąd, możesz ponownie uruchomić instalator, aby zmodyfikować aktualna instalację bez konieczności odinstalowywania i instalowania.
 
=== Microsoft DirectX SDK ===
[[File:DirectX_SDK.jpg|right|150px|link=https://www.microsoft.com/en-us/download/details.aspx?id=23549]]
'''Pobierz Microsoft DirectX SDK (August 2009)'''
* [https://archive.org/download/dxsdk_aug09/DXSDK_Aug09.exe Link 1]
* [https://mega.nz/file/pQJCiAJY#jBcYT6ZP4DMBpnm12BLRto9EQ-RjjpP3BWkSPanpvLI Link 2]
 
{| class="wikitable" style="margin-top: 0px; width: 70%; word-break: break-all;"
|+ Weryfikacja plików
|- style="vertical-align:bottom;"
! colspan="2" | Algorytm i wariant
! Hash
|- style="text-align:center;vertical-align:center;"
| rowspan="6" | '''{{nowrap|SHA-3}}''' || ''SHA3-224'' || 8bfcdc03518d7edd34689534fd4d21291469ff2f2eb10437ad648c58
|- style="text-align:center;vertical-align:center;"
| ''SHA3-256'' || 45bf3e08da3b3636ddb4f4a74243430f8d65759c074c0d79756ef810c4701c5a
|- style="text-align:center;vertical-align:center;"
| ''SHA3-384'' || b358e529963d6f5fd7f8bd4b530fb18f6a2e6a442009a54e981b2f9967589ed48150af310f283640d56f9b60d41100c9
|- style="text-align:center;vertical-align:center;"
| ''SHA3-512'' || 43522187053af744250059ef69c0f3083cecd1157fe56daac16b9497ebc6fb5b525875144e42898367c55f757cffd3526f37074d544470578602a5a944a45a75
|- style="text-align:center;vertical-align:center;"
| ''SHAKE128'' || 2a7c81bde9e867cbb5ef00b72ad8de66a3ee64c1d59f16465fa712479b6a84d28a02cc5ed08afa1d51e72011657453dbd4656cc9340d32e18179c39d03982dfc35c8f0c2a5c99e11dc74d0e23ed21b1e55f19c809a5a152bde39a2d46fcd12421f373f2d691ade1b57faf6c2ab7aded5a7d174f1f1c77127c0d6a1523b4775c569c5e1b4efa2da4bf2f708a96707a709e245a7f507382e69a81777919c90e95a091c0b699ce7f517
|- style="text-align:center;vertical-align:center;"
| ''SHAKE256'' || 9c100dac5245a61774f3a2752bf9e941bdcd5654b18035155161c63b20936dfc9bd7334feb9a6fe9a99a65491161083b39ac3bd578e2cf4f90cba3c786e9924fa0611f65a725331b77b63e7c8b552e1637bc77531ba0f2c9cac72115b28e523929ede4e5b246a0755e8d5c4089d94bf16627fb08672cfffa523bba3d976489a0eec60d3c6a96ca2b
|- style="text-align:center;vertical-align:center;"
| rowspan="6" | '''{{nowrap|SHA-2}}''' || ''SHA-224'' || a3a74b89cccfe314b79418d5598aac5e94800221e5d945c74f15c004
|- style="text-align:center;vertical-align:center;"
| ''SHA-256'' || 4ab1de69312f10f6b41310a5218d80c478bbd823bc0f86627318d690b128fb9f
|- style="text-align:center;vertical-align:center;"
| ''SHA-384'' || 254ed29c6ad2cadc6f013d2d51c0ac78a6bbe236a2c94ca99610eba8b2c1200d1a62c445ca9ee51bb09354875d5eca8a
|- style="text-align:center;vertical-align:center;"
| ''SHA-512'' || style="width: 60%;" | 736393c0dfa32221e229890f87eb330174d70dd2a02fa0cace303816d3e7a10a332a44129748de39665d1b339e627d6028c2080268f7afdd5240c447fec8ff0b
|- style="text-align:center;vertical-align:center;"
| ''SHA-512/224'' || 7e23d9ba916000782a17e23abf48e25237f45590cfe767aed9d79f10
|- style="text-align:center;vertical-align:center;"
| ''SHA-512/256'' || 0c833a56046fe7e4213fcb1862c730acf313d1b8f60b51eebf64dc3e79730c1c
|- style="text-align:center;vertical-align:center;"
| colspan="2" | '''MD5''' || 66e5379ecf46b014688779621bcc677c
|- style="text-align:center;vertical-align:center;"
| colspan="2" | '''{{nowrap|SHA-1}}''' || 5b9b969ed7b6cf5534bb7350e44c09b3573b0e71
|- style="text-align:center;vertical-align:center;"
| colspan="2" | '''{{nowrap|CRC32}}''' || e9f5c61d
|}
 
'''UWAGA:''' Po zainstalowaniu ''Microsoft DirectX SDK'' należy uruchomić ponownie komputer, ponieważ zmienna środowiskowa '''DXSDK_DIR''' nie będzie jeszcze dostępna. Po ponownym uruchomieniu otwórz ponownie plik '''create-projects.bat'''
 
 
'''Nie można odnaleźć d3dx9.h'''
 
Dodaj '''$(DXSDK_DIR)Include;''' do katalogów VC++ w projektach DirectX9GuiRenderer, GUI i Client Core.
Listę katalogów VC++ znajdziesz wybierając projekt, a następnie używając skrótu klawiszowego ALT + ENTER (bez +). Wybierz właściwości konfiguracji i znajdziesz tam katalogi VC++, kliknij tam "Dołącz katalogi" i dodaj ''';$(DXSDK_DIR)Include;''' na końcu.
'''Uwaga: Musisz zrobić to samo także dla kompilacji w trybie RELEASE'''
 
 
'''Nie można odnaleźć d3dx9.lib'''
 
Wykonaj takie same czynności jak opisano powyżej w przypadku błędu z plikiem '''d3dx9.h'''. Jednak zamiast ''';$(DXSDK_DIR)Include;''' musisz dodać ''';$(DXSDK_DIR)Lib/x86;''' w katalogach bibliotek.
'''Uwaga: Musisz zrobić to samo także dla kompilacji w trybie RELEASE'''
 
 
'''Błąd S1023'''
 
[https://support.microsoft.com/en-us/kb/2728613 "S1023" błąd podczas instalacji DirectX SDK (June 2010)]


'''Problemy z zestawem narzędzi'''<br>
[[Media:VsFoundationClasses.png|Upewnij się, że masz zainstalowane ''VC++ 2015 toolset''.]]<br>
(Możesz ponownie uruchomić instalator, aby zmodyfikować aktualna instalację bez konieczności odinstalowywania i instalowania.)


'''Dodatek: ReAttach''' (opcjonalnie)<br>
'''Nie można otworzyć pliku źródłowego "xxx.h" po aktualizacji do Visual Studio 2022'''
Pobierz: [https://marketplace.visualstudio.com/items?itemName=ErlandR.ReAttach ReAttach]<br>
(ReAttach daje łatwy sposób na ponowne dołączenie (re-attach) wcześniejszych celów debugowania)


=== Microsoft DirectX SDK ===
Jeśli zaktualizowałeś Visual Studio do wersji 2022 i pracowałeś z MTA na wcześniejszej wersji to podczas kompilacji projektu możesz otrzymać błędy związane z plikami nagłówków. Głównie są to błędy, że nie udało się znaleźć lub otworzyć jakiegoś pliku np. stdio.h, stddef.h itd.
[[File:DirectX_SDK.jpg|left|150px|link=https://www.microsoft.com/en-us/download/details.aspx?id=23549]]
'''Pobierz'''<br>
[https://www.microsoft.com/en-us/download/details.aspx?id=23549 Microsoft DirectX SDK (August 2009)]<br>


'''S1023 Error'''<br>
Upewnij się, że masz zainstalowaną najnowszą wersję zestawu Windows 10 SDK (w instalatorze Visual Studio na liście komponentów) i uruchom ponownie komputer.
[https://support.microsoft.com/en-us/kb/2728613 "S1023" błąd podczas instalacji DirectX SDK (June 2010)]<br style="clear:both">
Jeśli masz zainstalowany najnowszy zestaw i po ponownym uruchomieniu problem wciąż występuje to zamknij Visual Studio, przejdź do folderu "Build" (tam gdzie znajduje się folder mtasa-blue) i usuń folder o nazwie ".vs".


=== Klient Git ===
=== Klient Git ===
[[File:Git_logo.png|left|32px|link=https://git-scm.com/]]
[[File:Git_logo.png|left|32px|link=https://git-scm.com/]]
Masz trzy możliwości. Możesz zainstalować '''JEDEN''' z klientów poniżej (do współpracy) albo pobierz całe repozytorium kodu źródłowego [https://github.com/multitheftauto/mtasa-blue/archive/master.zip .ZIP] (Jeśli chcesz tylko skompilować kod źródłowy i nie zamierzasz współpracować razem z nami). Możesz także używac wiersza poleceń Git'a do kontrolowania repozytorium. <br style="clear:both">
Jeśli chcesz współpracować przy MTA, powinieneś zainstalować GIT. Pozwoli Ci to współpracować z nami poprzez tworzenie nowych gałęzi i przesyłanie zmian do nich we własnym repozytorium (fork).  
 
Jeśli korzystanie z konsoli jest dla Ciebie niekomfortowe, zalecamy korzystanie z [https://desktop.github.com/ Github Desktop]
==== GitHub Desktop ====
[[File:GitHub_Desktop.png|left|150px]]
'''Pobierz:'''<br>
[https://windows.github.com/ GitHub dla systemu Windows]<br style="clear:both">
 
==== SourceTree ====
[[File:Atlassian_SourceTree.png|left|150px]]
'''Pobierz:'''<br>
[https://www.sourcetreeapp.com/ SourceTree]<br style="clear:both">


==== GitKraken ====
Jeśli chcesz tylko skompilować kod źródłowy i nie zamierzasz współpracować razem z nami, możesz pobrać kod źródłowy bezpośrednio z linku poniżej, bez konieczności instalowania GIT.
[[File:GitKraken_Logo.png|left|150px]]
'''Pobierz:'''<br>
[https://www.gitkraken.com/ GitKraken]<br style="clear:both">


== Zdobycie najświeższego kodu źródłowego ==
== Zdobycie najświeższego kodu źródłowego ==

Revision as of 15:14, 28 April 2023

Aby pomyślnie skompilować Multi Theft Auto z kodu źródłowego, niezbędne jest wykonanie kilku kroków, które przedstawimy poniżej.

Przeczytaj uważnie poniższe instrukcje i nie pomijaj żadnej z nich, jeśli nie masz doświadczenia.

Podstawowe Wymagania

Kompilacja klienta Multi Theft Auto jest oficjalnie wspierana tylko na systemie Windows 10.

Upewnij się czy masz zainstalowane następujące programy i zestawy SDK:

Visual Studio 2022

Visual Studio Community.PNG
  1. Microsoft Visual Studio 2022 (Edycja Community jest darmowa).
  2. Na liście podczas instalacji, zaznacz te dwa pola
    1. Programowanie aplikacji klasycznych w języku C++
    2. Opcjonalny komponent (po prawej stronie na liście) C++ MFC dla najnowszych narzędzi kompilacji w wersji 143 (x86 & x64)

Jeśli nie zaznaczysz komponentu MFC to otrzymasz błąd cannot open include file 'afxres.h' Jeśli popełnisz błąd, możesz ponownie uruchomić instalator, aby zmodyfikować aktualna instalację bez konieczności odinstalowywania i instalowania.

Microsoft DirectX SDK

DirectX SDK.jpg

Pobierz Microsoft DirectX SDK (August 2009)

Weryfikacja plików
Algorytm i wariant Hash
SHA-3 SHA3-224 8bfcdc03518d7edd34689534fd4d21291469ff2f2eb10437ad648c58
SHA3-256 45bf3e08da3b3636ddb4f4a74243430f8d65759c074c0d79756ef810c4701c5a
SHA3-384 b358e529963d6f5fd7f8bd4b530fb18f6a2e6a442009a54e981b2f9967589ed48150af310f283640d56f9b60d41100c9
SHA3-512 43522187053af744250059ef69c0f3083cecd1157fe56daac16b9497ebc6fb5b525875144e42898367c55f757cffd3526f37074d544470578602a5a944a45a75
SHAKE128 2a7c81bde9e867cbb5ef00b72ad8de66a3ee64c1d59f16465fa712479b6a84d28a02cc5ed08afa1d51e72011657453dbd4656cc9340d32e18179c39d03982dfc35c8f0c2a5c99e11dc74d0e23ed21b1e55f19c809a5a152bde39a2d46fcd12421f373f2d691ade1b57faf6c2ab7aded5a7d174f1f1c77127c0d6a1523b4775c569c5e1b4efa2da4bf2f708a96707a709e245a7f507382e69a81777919c90e95a091c0b699ce7f517
SHAKE256 9c100dac5245a61774f3a2752bf9e941bdcd5654b18035155161c63b20936dfc9bd7334feb9a6fe9a99a65491161083b39ac3bd578e2cf4f90cba3c786e9924fa0611f65a725331b77b63e7c8b552e1637bc77531ba0f2c9cac72115b28e523929ede4e5b246a0755e8d5c4089d94bf16627fb08672cfffa523bba3d976489a0eec60d3c6a96ca2b
SHA-2 SHA-224 a3a74b89cccfe314b79418d5598aac5e94800221e5d945c74f15c004
SHA-256 4ab1de69312f10f6b41310a5218d80c478bbd823bc0f86627318d690b128fb9f
SHA-384 254ed29c6ad2cadc6f013d2d51c0ac78a6bbe236a2c94ca99610eba8b2c1200d1a62c445ca9ee51bb09354875d5eca8a
SHA-512 736393c0dfa32221e229890f87eb330174d70dd2a02fa0cace303816d3e7a10a332a44129748de39665d1b339e627d6028c2080268f7afdd5240c447fec8ff0b
SHA-512/224 7e23d9ba916000782a17e23abf48e25237f45590cfe767aed9d79f10
SHA-512/256 0c833a56046fe7e4213fcb1862c730acf313d1b8f60b51eebf64dc3e79730c1c
MD5 66e5379ecf46b014688779621bcc677c
SHA-1 5b9b969ed7b6cf5534bb7350e44c09b3573b0e71
CRC32 e9f5c61d

UWAGA: Po zainstalowaniu Microsoft DirectX SDK należy uruchomić ponownie komputer, ponieważ zmienna środowiskowa DXSDK_DIR nie będzie jeszcze dostępna. Po ponownym uruchomieniu otwórz ponownie plik create-projects.bat


Nie można odnaleźć d3dx9.h

Dodaj $(DXSDK_DIR)Include; do katalogów VC++ w projektach DirectX9GuiRenderer, GUI i Client Core. Listę katalogów VC++ znajdziesz wybierając projekt, a następnie używając skrótu klawiszowego ALT + ENTER (bez +). Wybierz właściwości konfiguracji i znajdziesz tam katalogi VC++, kliknij tam "Dołącz katalogi" i dodaj ;$(DXSDK_DIR)Include; na końcu. Uwaga: Musisz zrobić to samo także dla kompilacji w trybie RELEASE


Nie można odnaleźć d3dx9.lib

Wykonaj takie same czynności jak opisano powyżej w przypadku błędu z plikiem d3dx9.h. Jednak zamiast ;$(DXSDK_DIR)Include; musisz dodać ;$(DXSDK_DIR)Lib/x86; w katalogach bibliotek. Uwaga: Musisz zrobić to samo także dla kompilacji w trybie RELEASE


Błąd S1023

"S1023" błąd podczas instalacji DirectX SDK (June 2010)


Nie można otworzyć pliku źródłowego "xxx.h" po aktualizacji do Visual Studio 2022

Jeśli zaktualizowałeś Visual Studio do wersji 2022 i pracowałeś z MTA na wcześniejszej wersji to podczas kompilacji projektu możesz otrzymać błędy związane z plikami nagłówków. Głównie są to błędy, że nie udało się znaleźć lub otworzyć jakiegoś pliku np. stdio.h, stddef.h itd.

Upewnij się, że masz zainstalowaną najnowszą wersję zestawu Windows 10 SDK (w instalatorze Visual Studio na liście komponentów) i uruchom ponownie komputer. Jeśli masz zainstalowany najnowszy zestaw i po ponownym uruchomieniu problem wciąż występuje to zamknij Visual Studio, przejdź do folderu "Build" (tam gdzie znajduje się folder mtasa-blue) i usuń folder o nazwie ".vs".

Klient Git

Git logo.png

Jeśli chcesz współpracować przy MTA, powinieneś zainstalować GIT. Pozwoli Ci to współpracować z nami poprzez tworzenie nowych gałęzi i przesyłanie zmian do nich we własnym repozytorium (fork). Jeśli korzystanie z konsoli jest dla Ciebie niekomfortowe, zalecamy korzystanie z Github Desktop

Jeśli chcesz tylko skompilować kod źródłowy i nie zamierzasz współpracować razem z nami, możesz pobrać kod źródłowy bezpośrednio z linku poniżej, bez konieczności instalowania GIT.

Zdobycie najświeższego kodu źródłowego

Aby zdobyć najświeższy kod źródłowy, będziesz musiał pobrać ostatnią kopie naszego repozytorium Git.
Zalecamy sklonować nasze repozytorium w twoim kliencie Git, ponieważ możesz łatwo pobierać z niego dowolne aktualizacje.

Kompilacja kodu

  1. Uruchom skrypt (otwórz plik) win-create-projects.bat
  2. Otwórz plik rozwiązania MTASA.sln w folderze Build
  3. Jeśli zostaniesz zapytany o aktualizacje projektu, kliknij Anuluj
  4. Skompiluj kod w Visual Studio na konfiguracji Debug (może to potrwać kilka minut)
  5. Uruchom skrypt (otwórz plik) win-install-data.bat

Uruchamianie programu

Uruchamianie klienta MTA

Możesz uruchomić swojego klienta w folderze Bin. Możesz znaleźć tutaj pliki Mutli Theft Auto.exe i/lub Multi Theft Auto_d.exe. Przyrostek _d oznacza kompilacje developerską (konfiguracja debug) programu. Ponadto, możesz także uruchomić swojego klienta w debuggerze z Visual Studio jeśli chcesz przeanalizować układ stosu lub ustawić punkty przerwania w interesujących regionach kodu (przeczytaj więcej poniżej w sekcji Debugowanie).

Uruchamianie dedykowanego serwera

Jeśli już wykonałeś krok 5 (Instalacja zasobów) w sekcji Kompilacja kodu aby zainstalować zasoby, możesz przejść do sekcji Uruchamianie serwera lokalnego.

Instalacja najświeższych zasobów

Jeśli chcesz uruchomić dedykowany serwer Multi Theft Auto, musisz zainstalować wymagane zasoby. Są one niezbędne, ponieważ dodają podstawowe funkcje (np. odradzanie graczy) aby móc grać.

Nasze oficjalne repozytorium zasobów: znajdujące się w serwisie GitHub. Możesz pobrać najświeższe zasoby z tego repozytorium lub pobierz archiwum .zip. Upewnij się, że masz najnowszą paczkę zasobów.

Uruchamianie serwera

Aby uruchomić serwer, otwórz plik MTA Server.exe w folderze Bin/server. Przyrostek _d oznacza kompilację developerską (konfigurację debug) programu.
Możesz także uruchomić serwer w wersji developerskiej (debug); MTA Server_d.exe przy pomocy debuggera Visual Studio (jak przy pisaniu, możesz zrobić to poprzez kliknięcie prawego przycisku myszki na projekcie Launcher, po stronie serwera (Rozwiń projekt Server) i wybranie Uruchom lokalną instancję w zakładce Debugger), ale możesz także dołączyć do działającego debuggera serwera MTA (zobacz więcej niżej, w sekcji Debuggowanie).

Debugging

If you already compiled the code in the Debug configuration then continue reading, if not, then go up to Compilling the code and follow the steps for a Debug build.
You can either launch MTA yourself and attach any debugger you want to use (also applies to the Visual Studio debugger) or you start a local debugging session in Visual Studio.
Local Windows Debugger.PNG

How to enable breakpoints

If you choose to run MTA with Visual Studio then you should also attach the debugger to the executable gta_sa.exe (press CTRL + ALT + P in Visual Studio) - otherwise your breakpoints will not work for anything beside the MTA Launcher project.
Attach to Process.png

Extending timeout duration

When you use breakpoints during debugging, you may get kicked by the server due to timeout, because the client is frozen. To prevent this, create the timeout.longtime file in your Bin/server/ directory. The content of the file is the new timeout duration in seconds, so make sure you type a huge number in there. If you keep the file empty, the timeout will be set to 120 seconds.

ReAttach for Visual Studio

You can use ReAttach to re-attach the debugger to the gta_sa.exe executable whenever you start your local debugger in Visual Studio.
ReAttach to GTASA.PNG

Chęci współpracy

Prosimy, sprawdź nasze Coding guidelines po więcej informacji o praktykach kodowania.

Dodatkowe informacje

Jeśli potrzebujesz więcej informacji, sprawdź nasz bug tracker lub Discord.

Błędy

CL38 error. [nie znaleziono netc_d.dll]

Rozwiązanie: Usuń Mutli Theft Auto_d.exe i naciśnij 'Kompiluj ponownie' w Visual Studio.

Po sklonowaniu repozytorium, nie można skompilować projektu

Rozwiązanie: Otwórz plik win-create-projects.bat w głównym katalogu.

CL17 Load field. Prosimy, upewnij się, że najnowsze pliki danych zostały zainstalowane poprawnie

Rozwiązanie: Otwórz plik win-install-data.bat w głównym katalogu.