Skip to content

Latest commit

 

History

History
365 lines (276 loc) · 6.65 KB

File metadata and controls

365 lines (276 loc) · 6.65 KB

📖 Szczegółowa Instrukcja Kompilacji

🎯 Cel

Ten dokument zawiera dokładną instrukcję, jak skompilować program Game Deals Viewer z kodu źródłowego C++ na dowolnej dystrybucji Linuxa.


📋 Krok 1: Instalacja zależności

Program wymaga następujących narzędzi i bibliotek:

Narzędzia budowania:

  • g++ - kompilator C++17
  • cmake - system budowania (min. wersja 3.16)
  • make - narzędzie do kompilacji

Biblioteki:

  • Qt6 Base - framework GUI (Core, Widgets, Network)
  • libcurl - biblioteka HTTP/HTTPS

Instalacja na różnych dystrybucjach:

Ubuntu 22.04 / 24.04 / Debian 12+:

sudo apt update
sudo apt install -y \
    build-essential \
    cmake \
    qt6-base-dev \
    libqt6widgets6 \
    libqt6network6 \
    libcurl4-openssl-dev

Fedora 38+:

sudo dnf install -y \
    gcc-c++ \
    cmake \
    qt6-qtbase-devel \
    libcurl-devel

Arch Linux / Manjaro:

sudo pacman -S --needed \
    base-devel \
    cmake \
    qt6-base \
    curl

openSUSE Tumbleweed:

sudo zypper install -y \
    gcc-c++ \
    cmake \
    qt6-base-devel \
    libcurl-devel

Gentoo:

sudo emerge -av \
    dev-qt/qtbase:6 \
    dev-qt/qtnetwork:6 \
    dev-qt/qtwidgets:6 \
    net-misc/curl

🔧 Krok 2: Pobranie kodu źródłowego

Jeśli masz kod źródłowy w archiwum:

# Rozpakuj archiwum
tar -xzf game-deals-viewer.tar.gz
cd game-deals-viewer

Lub sklonuj z repozytorium git (jeśli dostępne):

git clone https://github.com/yourusername/game-deals-viewer.git
cd game-deals-viewer

🏗️ Krok 3: Kompilacja

Metoda A: Automatyczna (zalecana)

Użyj dostarczonego skryptu:

./build.sh

Skrypt automatycznie:

  1. ✅ Sprawdzi wszystkie zależności
  2. ✅ Utworzy katalog build/
  3. ✅ Uruchomi CMake
  4. ✅ Skompiluje program
  5. ✅ Wyświetli lokalizację pliku wykonywalnego

Metoda B: Manualna

Jeśli wolisz kontrolować każdy krok:

# 1. Utwórz katalog build
mkdir -p build
cd build

# 2. Konfiguracja CMake
cmake .. -DCMAKE_BUILD_TYPE=Release

# 3. Kompilacja (użyj wszystkich rdzeni CPU)
make -j$(nproc)

# 4. Sprawdź wynik
ls -lh GameDealsViewer

Opcje kompilacji:

Debug build (dla programistów):

cmake .. -DCMAKE_BUILD_TYPE=Debug
make -j$(nproc)

Release z dodatkowymi optymalizacjami:

cmake .. \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_CXX_FLAGS="-O3 -march=native"
make -j$(nproc)

🚀 Krok 4: Uruchomienie

Z katalogu build:

./build/GameDealsViewer

Lub użyj skryptu:

./run.sh

Wymuszenie platformy:

Wayland:

QT_QPA_PLATFORM=wayland ./build/GameDealsViewer

X11:

QT_QPA_PLATFORM=xcb ./build/GameDealsViewer

📦 Krok 5: Instalacja w systemie (opcjonalne)

Metoda A: Automatyczna instalacja

./install_system.sh

Program zostanie zainstalowany w:

  • /usr/local/bin/GameDealsViewer - plik wykonywalny
  • /usr/share/applications/GameDealsViewer.desktop - skrót w menu

Metoda B: Manualna instalacja

# Instalacja binarium
sudo install -Dm755 build/GameDealsViewer /usr/local/bin/GameDealsViewer

# Instalacja .desktop
sudo install -Dm644 GameDealsViewer.desktop \
    /usr/share/applications/GameDealsViewer.desktop

# Aktualizacja bazy aplikacji
sudo update-desktop-database /usr/share/applications/

Metoda C: CMake install

cd build
sudo make install

🔍 Krok 6: Weryfikacja

Sprawdź wersję Qt:

qmake6 --version
# lub
pkg-config --modversion Qt6Core

Sprawdź zależności programu:

ldd ./build/GameDealsViewer

Powinny być widoczne:

  • libQt6Core.so.6
  • libQt6Widgets.so.6
  • libQt6Network.so.6
  • libcurl.so.4

Test uruchomienia z debugiem:

QT_DEBUG_PLUGINS=1 ./build/GameDealsViewer

📦 Tworzenie pliku .bin

Jeśli chcesz mieć prosty plik .bin:

# Skopiuj i zmień nazwę
cp build/GameDealsViewer GameDealsViewer.bin
chmod +x GameDealsViewer.bin

# Uruchom
./GameDealsViewer.bin

🐛 Rozwiązywanie problemów

Problem: "Qt6 nie jest zainstalowane"

Rozwiązanie: Upewnij się, że masz Qt6, nie Qt5:

# Sprawdź dostępne wersje
apt search qt6-base-dev    # Ubuntu/Debian
dnf search qt6             # Fedora
pacman -Ss qt6             # Arch

Problem: "cmake: command not found"

Rozwiązanie:

sudo apt install cmake      # Ubuntu/Debian
sudo dnf install cmake      # Fedora
sudo pacman -S cmake        # Arch

Problem: "undefined reference to curl_*"

Rozwiązanie: Zainstaluj libcurl development:

sudo apt install libcurl4-openssl-dev

Problem: Program się nie kompiluje

Rozwiązanie 1: Wyczyść build i spróbuj ponownie:

rm -rf build
./build.sh

Rozwiązanie 2: Sprawdź wersję kompilatora:

g++ --version  # Wymagane: >= 7.0

Problem: Program nie uruchamia się

Diagnoza:

# Sprawdź brakujące biblioteki
ldd ./build/GameDealsViewer | grep "not found"

# Uruchom z verbose logami
QT_DEBUG_PLUGINS=1 QT_LOGGING_RULES="*.debug=true" ./build/GameDealsViewer

📝 Struktura projektu po kompilacji

game-deals-viewer/
├── build/                      # Katalog kompilacji
│   ├── GameDealsViewer         # ← PLIK WYKONYWALNY
│   ├── CMakeCache.txt
│   └── ...
├── src/                        # Kod źródłowy
│   ├── main.cpp
│   ├── mainwindow.h/cpp
│   ├── apimanager.h/cpp
│   └── dealcard.h/cpp
├── CMakeLists.txt              # Konfiguracja CMake
├── build.sh                    # Skrypt kompilacji
├── run.sh                      # Skrypt uruchomienia
├── install_system.sh           # Skrypt instalacji
├── GameDealsViewer.desktop     # Desktop entry
└── README.md                   # Dokumentacja

⚙️ Zaawansowane opcje CMake

Zmiana prefiksu instalacji:

cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gamedeals
sudo make install
# Program w: /opt/gamedeals/bin/GameDealsViewer

Build tylko dla Wayland (bez X11):

cmake .. -DQT_QPA_PLATFORM=wayland

Static linking (większy plik, brak zależności):

cmake .. -DCMAKE_EXE_LINKER_FLAGS="-static-libgcc -static-libstdc++"

🎉 Gotowe!

Po udanej kompilacji możesz uruchomić program:

./build/GameDealsViewer

lub po instalacji systemowej:

GameDealsViewer

Program automatycznie: ✅ Wykryje Wayland/X11
✅ Sprawdzi zależności
✅ Pobierze aktualne oferty ze Steam i Epic Games


Powodzenia! 🚀