Skip to content

Latest commit

 

History

History
585 lines (419 loc) · 12.7 KB

File metadata and controls

585 lines (419 loc) · 12.7 KB

QR Generator - Kompilacja dla Windows (Visual Studio 2019)

📋 Spis Treści

  1. Wymagania
  2. Szybki Start
  3. Instalacja Manualna
  4. Kompilacja
  5. Uruchamianie
  6. Rozwiązywanie Problemów
  7. CMake Presets
  8. Packaging

🔧 Wymagania

Obowiązkowe:

  1. Windows 10/11 (64-bit)

  2. Visual Studio 2019 (dowolna edycja)

  3. CMake 3.16+

  4. Git

Opcjonalne:

  1. vcpkg (zalecane - zarządzanie zależnościami)
    • Automatycznie instalowane przez setup_windows.ps1

🚀 Szybki Start

Automatyczna instalacja (Zalecane):

Otwórz PowerShell jako Administrator i uruchom:

# Sklonuj repozytorium
git clone https://github.com/Co0ob1iee/QR_Generator.git
cd QR_Generator

# Uruchom skrypt setup
.\setup_windows.ps1

Skrypt automatycznie:

  1. ✅ Sprawdza wymagania
  2. ✅ Instaluje vcpkg
  3. ✅ Pobiera zależności (Qt6, OpenCV, libqrencode)
  4. ✅ Konfiguruje CMake
  5. ✅ Kompiluje projekt

Czas: ~45-60 minut (pierwsze uruchomienie)


🛠️ Instalacja Manualna

Jeśli wolisz pełną kontrolę:

Krok 1: Instalacja vcpkg

# Sklonuj vcpkg
cd $env:USERPROFILE
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg

# Bootstrap
.\bootstrap-vcpkg.bat

# Dodaj do zmiennych środowiskowych
[Environment]::SetEnvironmentVariable("VCPKG_ROOT", "$env:USERPROFILE\vcpkg", "User")
$env:VCPKG_ROOT = "$env:USERPROFILE\vcpkg"

Krok 2: Instalacja zależności

cd $env:VCPKG_ROOT

# Qt6 Base (Core, Widgets, Gui)
.\vcpkg install qtbase:x64-windows

# Qt6 Tools (Linguist dla i18n)
.\vcpkg install qt6-tools:x64-windows

# OpenCV (tylko wymagane moduły)
.\vcpkg install opencv4[core,imgproc,imgcodecs,objdetect,videoio]:x64-windows

# libqrencode
.\vcpkg install libqrencode:x64-windows

Uwaga: Instalacja Qt6 i OpenCV może zająć 30-45 minut!

Krok 3: Konfiguracja CMake

cd QR_Generator
mkdir build\windows-debug
cd build\windows-debug

cmake ../.. `
    -G "Visual Studio 16 2019" `
    -A x64 `
    -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" `
    -DBUILD_TESTS=ON `
    -DENABLE_I18N=ON

🔨 Kompilacja

Opcja A: Visual Studio GUI

  1. Otwórz solution:

    build\windows-debug\QRGenerator.sln
    
  2. Wybierz konfigurację:

    • Górny pasek: Debug lub Release
    • Architektura: x64
  3. Build:

    • Menu: BuildBuild Solution (Ctrl+Shift+B)
    • Lub kliknij prawym na projekt → Build
  4. Uruchom:

    • Menu: DebugStart Debugging (F5)
    • Lub: DebugStart Without Debugging (Ctrl+F5)

Opcja B: Visual Studio + Folder CMake

  1. Otwórz folder:

    • Menu: FileOpenFolder...
    • Wybierz katalog QR_Generator
  2. CMake automatycznie:

    • Wykryje CMakeLists.txt
    • Załaduje CMakePresets.json
    • Skonfiguruje projekt
  3. Wybierz preset:

    • Górny pasek: wybierz windows-debug lub windows-release
  4. Build:

    • Menu: BuildBuild All

Opcja C: Command Line

# Debug
cd build\windows-debug
cmake --build . --config Debug --parallel

# Release
cd build\windows-release
cmake --build . --config Release --parallel

# Tylko testy
cmake --build . --config Debug --target test_validation
cmake --build . --config Debug --target test_encryption

▶️ Uruchamianie

Aplikacja główna:

# Debug
.\build\windows-debug\Debug\qr-generator.exe

# Release
.\build\windows-release\Release\qr-generator.exe

Testy jednostkowe:

# Wszystkie testy
cd build\windows-debug
ctest -C Debug --output-on-failure

# Poszczególne testy
.\Debug\test_validation.exe
.\Debug\test_encryption.exe

# Z verbose output
.\Debug\test_validation.exe -v2

Z loggingiem:

# Włącz debug logs
$env:QT_LOGGING_RULES = "qrgenerator.*.debug=true"
.\build\windows-debug\Debug\qr-generator.exe

# Tylko kamera i WiFi
$env:QT_LOGGING_RULES = "qrgenerator.camera.debug=true;qrgenerator.wifi.debug=true"
.\build\windows-debug\Debug\qr-generator.exe

🔍 Rozwiązywanie Problemów

Problem 1: "CMake nie znalazł Qt6"

Błąd:

Could NOT find Qt6 (missing: Qt6_DIR)

Rozwiązanie:

# Sprawdź czy Qt6 jest zainstalowany przez vcpkg
$env:VCPKG_ROOT\vcpkg list | Select-String qt

# Jeśli nie - zainstaluj
$env:VCPKG_ROOT\vcpkg install qtbase:x64-windows

# Upewnij się, że używasz toolchain file
cmake ... -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake"

Problem 2: "OpenCV not found"

Błąd:

Could NOT find OpenCV

Rozwiązanie:

# Zainstaluj OpenCV przez vcpkg
$env:VCPKG_ROOT\vcpkg install opencv4[core,imgproc,imgcodecs,objdetect,videoio]:x64-windows

# Sprawdź instalację
$env:VCPKG_ROOT\vcpkg list | Select-String opencv

Problem 3: "libqrencode not found"

Błąd:

Package 'libqrencode' not found

Rozwiązanie:

# Zainstaluj libqrencode
$env:VCPKG_ROOT\vcpkg install libqrencode:x64-windows

Problem 4: "Brak VCPKG_ROOT"

Błąd:

CMake Error: VCPKG_ROOT is not set

Rozwiązanie:

# Ustaw zmienną środowiskową
[Environment]::SetEnvironmentVariable("VCPKG_ROOT", "C:\path\to\vcpkg", "User")

# Dla bieżącej sesji
$env:VCPKG_ROOT = "C:\path\to\vcpkg"

Problem 5: "MSBuild failed"

Błąd:

MSBUILD : error MSB1009: Project file does not exist

Rozwiązanie:

  1. Usuń folder build
  2. Uruchom CMake ponownie
  3. Sprawdź czy Visual Studio 2019 jest zainstalowany

Problem 6: "DLL not found" przy uruchamianiu

Błąd:

The code execution cannot proceed because Qt6Core.dll was not found

Rozwiązanie A - Dodaj vcpkg do PATH:

$env:PATH += ";$env:VCPKG_ROOT\installed\x64-windows\bin"

Rozwiązanie B - Skopiuj DLL-e:

# Skopiuj Qt DLLs do katalogu z .exe
xcopy "$env:VCPKG_ROOT\installed\x64-windows\bin\*.dll" "build\windows-debug\Debug\" /Y

# Lub dla Release
xcopy "$env:VCPKG_ROOT\installed\x64-windows\bin\*.dll" "build\windows-release\Release\" /Y

Rozwiązanie C - Deployment (zalecane dla dystrybucji):

# Użyj windeployqt
$env:VCPKG_ROOT\installed\x64-windows\tools\qt6\bin\windeployqt.exe `
    build\windows-release\Release\qr-generator.exe

🎛️ CMake Presets

Projekt zawiera CMakePresets.json dla łatwej konfiguracji.

Dostępne presety:

  1. windows-debug - Debug build z testami
  2. windows-release - Release build z testami
  3. windows-release-no-tests - Release bez testów

Użycie z CLI:

# Konfiguracja
cmake --preset windows-debug

# Build
cmake --build --preset windows-debug

# Testy
ctest --preset windows-debug

Użycie w Visual Studio:

  1. Otwórz folder projektu
  2. Wybierz preset z rozwijanej listy
  3. Visual Studio automatycznie skonfiguruje projekt

📦 Packaging

Tworzenie Instalatora (NSIS)

  1. Zainstaluj NSIS:

  2. Skonfiguruj CPack:

    cd build\windows-release
    cmake --build . --config Release
    cpack -C Release
  3. Installer powstanie:

    build\windows-release\QRGenerator-1.0.0-win64.exe
    

Portable ZIP

# Build Release
cmake --build build\windows-release --config Release

# Deploy Qt
$env:VCPKG_ROOT\installed\x64-windows\tools\qt6\bin\windeployqt.exe `
    build\windows-release\Release\qr-generator.exe `
    --release --no-compiler-runtime

# Stwórz ZIP
Compress-Archive -Path "build\windows-release\Release\*" `
                 -DestinationPath "QRGenerator-1.0.0-portable.zip"

🔐 Certyfikat Code Signing (Opcjonalnie)

Dla dystrybucji publicznej zalecane jest podpisanie .exe:

# Z certyfikatem .pfx
signtool sign /f "certificate.pfx" /p "password" /t "http://timestamp.digicert.com" `
    "build\windows-release\Release\qr-generator.exe"

📁 Struktura Build (Windows)

QR_Generator/
├── build/
│   ├── windows-debug/
│   │   ├── Debug/
│   │   │   ├── qr-generator.exe    # Aplikacja główna
│   │   │   ├── test_validation.exe # Testy
│   │   │   └── test_encryption.exe
│   │   └── QRGenerator.sln         # Visual Studio Solution
│   └── windows-release/
│       └── Release/
│           └── qr-generator.exe
├── CMakePresets.json               # Presety CMake
├── vcpkg.json                      # Manifest zależności
└── setup_windows.ps1               # Skrypt setup

🎨 Visual Studio Code

Alternatywnie możesz użyć VS Code:

  1. Instalacja rozszerzeń:

    • CMake Tools
    • C/C++ Extension Pack
    • CMake Language Support
  2. Otwórz folder:

    • File → Open Folder → wybierz QR_Generator
  3. Konfiguracja:

    • CMake Tools automatycznie wykryje presety
    • Wybierz kit: Visual Studio Community 2019 - amd64
    • Wybierz preset: windows-debug
  4. Build:

    • Ctrl+Shift+P → "CMake: Build"
    • Lub kliknij "Build" w dolnym pasku

⚙️ Opcje CMake

Dostępne opcje podczas konfiguracji:

cmake .. `
    -DBUILD_TESTS=ON          # Włącz testy (domyślnie: ON)
    -DENABLE_I18N=ON          # Włącz tłumaczenia (domyślnie: ON)
    -DCMAKE_BUILD_TYPE=Debug  # Debug lub Release
    -DCMAKE_INSTALL_PREFIX=C:\QRGenerator  # Katalog instalacji

🧪 Continuous Integration (Windows)

Przykład GitHub Actions:

# .github/workflows/windows.yml
name: Windows Build

on: [push, pull_request]

jobs:
  build:
    runs-on: windows-2019

    steps:
    - uses: actions/checkout@v3

    - name: Setup vcpkg
      run: |
        git clone https://github.com/Microsoft/vcpkg.git C:\vcpkg
        C:\vcpkg\bootstrap-vcpkg.bat
        echo "VCPKG_ROOT=C:\vcpkg" >> $env:GITHUB_ENV

    - name: Cache vcpkg packages
      uses: actions/cache@v3
      with:
        path: C:\vcpkg\installed
        key: vcpkg-${{ runner.os }}-${{ hashFiles('vcpkg.json') }}

    - name: Install dependencies
      run: |
        C:\vcpkg\vcpkg install qtbase:x64-windows
        C:\vcpkg\vcpkg install opencv4:x64-windows
        C:\vcpkg\vcpkg install libqrencode:x64-windows

    - name: Configure CMake
      run: |
        cmake -B build -G "Visual Studio 16 2019" -A x64 `
          -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake

    - name: Build
      run: cmake --build build --config Release

    - name: Test
      run: cd build && ctest -C Release --output-on-failure

🆘 Pomoc

Oficjalna dokumentacja:

Społeczność:


📝 Notatki

Różnice Windows vs Linux:

Aspekt Linux Windows
Package Manager apt/pacman vcpkg
Separator ścieżek / \
Exe extension brak .exe
DLLs Shared libs Wymagane w PATH
CMake Generator Unix Makefiles Visual Studio

Wydajność kompilacji:

  • Debug: ~5-10 minut (po zainstalowaniu zależności)
  • Release: ~10-15 minut (optymalizacja)
  • Pierwsze vcpkg: ~45-60 minut (Qt + OpenCV)

Rozmiar:

  • Zależności (vcpkg): ~2-3 GB
  • Build artifacts: ~500 MB (Debug), ~100 MB (Release)
  • Portable package: ~50-80 MB (z DLLs)

✅ Checklist

Przed pierwszym uruchomieniem sprawdź:

  • Visual Studio 2019 zainstalowane
  • CMake 3.16+ zainstalowane i w PATH
  • Git zainstalowany
  • vcpkg skonfigurowany ($env:VCPKG_ROOT)
  • Zależności zainstalowane (Qt6, OpenCV, libqrencode)
  • Projekt skonfigurowany przez CMake
  • Build zakończony bez błędów
  • Testy przechodzą (ctest)
  • Aplikacja uruchamia się

Powodzenia z kompilacją! 🎉

Jeśli napotkasz problemy, sprawdź sekcję Rozwiązywanie Problemów lub utwórz Issue.


Dokument utworzony: 2025-11-18 Wersja: 1.0 Dla Visual Studio 2019 / Windows 10/11