Archiwum miesiąca: marzec 2017

Stworzenie projektu, commit i push na githuba

Nadszedł czas aby skupić się na kodzie programu i zapełnić święcące dotychczas pustkami repozytorium projektu: Obrazki logiczne. Poniżej przedstawiam krok po kroku tworzenie nowego projektu w Qt Creatorze i umieszczanie go na githubie.

Krok po kroku

W Qt Creatorze stworzyłem nowy projekt jako Qt Widgets Application i od razu dodałem do gita. W karcie „projects” odznaczyłem „Shadow build” dla wszystkich konfiguracji po to aby mieć wszystkie pliki wynikowe w podkatalogach debug i release w głównym katalogu projektu. Do akcji związanych z gitem używam Git Gui (Qt Creator → Tools → Git → Git Tools → Git Gui). Przy pierwszym uruchomieniu Git Gui trzeba go skonfigurować. Wchodzimy w Edit → Options… i podajemy User Name oraz Email Address – nazwa użytkownika i e-mail konta na githubie. Ustawiamy kodowanie znaków na UTF-8, resztę można pozostawić bez zmian. Klikamy Save i wracamy do ekranu głównego. Jeśli w oknie Unstaged changes pojawiły się jakieś pliki, których nie chcemy zamieszczać w repozytorium (np. pliki generowane przez IDE lub kompilator) to musimy stworzyć plik .gitignore w głównym katalogu projektu. W pliku .gitignore będą znajdowały się wyrażenia regularne określające pliki wykluczone z repozytorium. Zawartość pliku .gitignore dla projektu stworzonego w Qt:

/debug
/release
*.user
*.stash
Makefile
Makefile.Debug
Makefile.Release
ui_*.h

Po stworzeniu i uzupełnieniu pliku .gitignore wracamy do Git Gui. Po kliknięciu Rescan niechciane pliki powinny zniknąć. Teraz w oknie Unstaged changes powinny znajdować się jedynie pliki źródłowe i główny plik projektu. Kliknięcie Stage Changed przenosi pliki do okna Staged Changes, które zawiera wszystkie pliki, które zostaną dodane do przyszłego commitu. Wypełniamy opis zmian i klikamy commit, który dodaje pliki do lokalnego repozytorium. Zaznaczenie opcji Ammend Last Commit pozwala na modyfikację ostatniego commitu – dzięki temu można uniknąć niepotrzebnego rozrostu listy edycji, w sytuacji gdy zapomnieliśmy dodać jakiegoś pliku lub źle opisaliśmy poprzedni commit. Jednak warto być tutaj ostrożnym gdyż komenda ammend zastępuje całkowicie poprzedni commit bez śladu w historii zmian. Powinno się unikać komendy Ammend w publicznych repozytoriach.

Przed pierwszym wysłaniem kodu do githuba trzeba skonfigurować zdalne repozytorium. W Git Gui klikamy Remote → Add. W polu Name wpisujemy nazwę repozytorium np. „nonograms”, a w polu Location adres repozytorium „https://github.com/ololuki/nonograms”. Po kliknięciu Add możemy wykonać pierwszy „Push”. Po kliknięciu przycisku Push w oknie Push, trzeba będzie podać nazwę użytkownika i hasło z githuba. Jeśli wszystko poszło jak trzeba nasz kod pojawi się na githubie.

Możliwe problemy

Jeśli używamy oprogramowania SPICE to mogą pojawić się problemy z lokalizacją plików ustawień gita. Domyślnie znajdują się one w katalogu domowym użytkownika ~/ czyli w Windowsie w C:\Users\username\ natomiast SPICE (orCAD) wprowadza zmienną środowiskową HOME z dziwną ścieżką, na przykład C:\Users\LUK\AppData\Roaming\SPB_16.6 więc po zainstalowaniu orCADa pliki ustawień gita a także kilku innych programów mogą trafić do tego śmiesznego katalogu. Aby to naprawić wystarczy przenieść zawartość katalogu znajdującego się pod zmienną środowiskową HOME do naszego katalogu domowego (C:\Users\username\) a następnie usunąć zmienną środowiskową HOME z systemu. Po wszystkim konieczne jest ponowne uruchomienie komputera.

Qt Creator – konfiguracja kompilatora i debugera.

W tym poście opiszę jak rozpocząć przygodę z Qt na Windowsie. Instalacja środowiska Qt Creator i kompilatora jest dość prosta – generalnie ogranicza się do klikania Next. Zainstalowanie debugera może sprawić trochę więcej problemów jeśli robimy to pierwszy raz, dlatego właśnie powstał ten post. Głównie jako ściąga dla mnie gdybym w przyszłości musiał znowu konfigurować środowisko, ale może któryś z czytelników także z tego kiedyś skorzysta.

Qt creator

Środowisko Qt można pobrać tutaj: Qt Download Bezpośredni link do wersji użytej przeze mnie (5.8.0 VS2015 x64): qt-opensource-windows-x86-msvc2015_64-5.8.0.exe.mirrorlist

Visual Studio 2015

Visual Studio 2015 w darmowej wersji Community można ściągnąć tutaj: Visual Studio Community 2015 Update 3 lub Visual Studio Community 2015 Update 3 (bez logowania) Ewentualnie: Visual Studio Community 2015 (starsza wersja)
Podczas instalacji trzeba będzie zaznaczyć opcje „Visual C++” oraz „Universal Windows App Development Tools”.

Hello world

Po zainstalowaniu IDE i kompilatora powinno się dać skompilować pierwszy pierwszy program. Po uruchomieniu Qt Creatora mamy listę przykładowych programów. Po wybraniu dowolnego z nich pojawia się strona „Configure project”. Pojawia się ona przy pierwszym uruchomieniu danego projektu i wystarczy kliknąć przycisk „Configure project”. Następnie dobrze jest przejść do karty „Projects” i odznaczyć opcję „Shadow build” (osobno dla każdej konfiguracji debug i release). Kiedy opcja ta jest zaznaczona pliki wynikowe będą przechowywane w katalogu poza głównym katalogiem projektu. Odznaczenie tej opcji spowoduje, że wszystkie pliki generowane przez kompilator pozostaną wewnątrz głównego katalogu projektu w podfolderach build lub release. Język interfejsu Qt Creatora można zmienić w Tools → Options → Environment.

Debuging tools

Konfiguracja debugera (Setting Up Debugger). Ze strony Windows Driver Kit ściągamy „Get Debugging Tools for Windows (WinDbg) (from the SDK)” Bezpośredni link: SDKSETUP.EXE
Po odpaleniu pobranego SDKSETUP.EXE będzie możliwość zainstalowania lub pobrania Windows Software Devepment Kit. Jeśli wybraliśmy opcję pobierania do późniejszej instalacji to po ściągnięciu musimy odpalić nowo pobrany SDKSETUP.exe z folderu ustawionego jako „Download Path” (domyślnie C:\Users\Username\Downloads\Windows Kits\10\StandaloneSDK). Wybieramy komponenty do zainstalowania – najważniejsze są Debugging Tools for Windows oraz Windows Software Development Kit, ale można na wszelki wypadek zainstalować wszystko.

Debugowanie

Po pomyślnym zainstalowaniu narzędzi do debugowania możemy sprawdzić czy Qt Creator wykryje nasz debugger, a następnie spróbujemy go przetestować. Wchodzimy w Tools → Options → Build & Run → Debuggers i powinniśmy zobaczyć dostępne debugery dla architektury x86 oraz x64. Teraz możemy przetestować debuger i jeśli wszystko zostało zainstalowane prawidło to powinien działać od razu bez dodatkowej konfiguracji.

Możliwe problemy

  • Podczas instalacji Visual Studio może wyskoczyć błąd instalacji Windows SDK. Jeśli jednak pomimo tego błędu będzie możliwa kompilacja w Qt Creatorze to znaczy, że wszystkie potrzebne komponenty zostały zainstalowane prawidłowo i nie warto się tym przejmować.
  • Podczas instalacji SDK może pojawić się komunikat „The features installed on this computer are up-to-date” a pomimo to debuger nie będzie zainstalowany – wchodzimy wtedy w Panel sterowania → Programy i funkcje, znajdujemy wpis „Windows Software Development Kit – Windows 10.0.14393.33” i klikamy prawym → Zmień.

Daj się poznać 2017 – Obrazki logiczne.

Ruszyła kolejna edycja konkursu Daj się poznać. Postanowiłem wziąć w nim udział tworząc projekt programu do rozwiązywania obrazków logicznych (nonogramów). Umożliwi on wczytanie i samodzielne rozwiązywanie obrazków logicznych bądź skorzystanie z automatycznego solvera. Solver ten będzie rozwiązywał obrazki tak jak człowiek. Program będzie rozwiązywał obrazek stosując odpowiednie, zgodne z zasadami metody rozwiązywania. Sprawdzi czy obrazek jest możliwy do rozwiązania przez człowieka. Będzie też możliwość zweryfikowania czy istnieje tylko jedno poprawne rozwiązanie. Wprowadzanie obrazka do programu będzie odbywało się przez wpisanie liczb opisujących obrazek, narysowanie go lub poprzez import pliku z obrazkami lub bazą obrazków.

Zastosowane technologie

Część logiki solvera miałem wcześniej napisaną w języku C++, więc postanowiłem użyć właśnie tego języka i poznać jakąś biblioteką GUI. Biblioteki, które wybrałem to wxWidgets oraz QT – jeszcze nie jestem ostateczne zdecydowany na którąś z nich. Zaletą wxWidgets jest bardziej liberalna licencja i to, że kiedyś napisałem kilka bardzo prostych programów z jej użyciem, natomiast QT jest dostarczany z gotowym, skonfigurowanym środowiskiem – QT Creator i jest używany w komercyjnych projektach. Pakiet QT zawiera wszystkie niezbędne biblioteki, edytor kodu źródłowego oraz wizualny edytor plików *.ui z widokami. Wymaga jedynie dostępu do kompilatora – w moim przypadku użyję Visual C++ 14 zawartego w Visual studio 2015.