Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Autor: xevuel
Konfiguracja

[C++] Instalacja bibliotek w Dev-C++

[artykuł] Artykuł opisuje w jaki sposób przeprowadza się konfigurację nowych bibliotek w środowisku Dev-C++. Proces instalacji nowej biblioteki został omówiony na przykładzie biblioteki freeglut.

Wstęp

Podczas pisania programu nie trzeba znać wszystkich opcji środowiska, którego używamy. Czasami jednak warto nieco pozmieniać standardowe ustawienia, chociażby po to, aby zwiększyć komfort pracy i skupić się na tym co najważniejsze - programowaniu. Ten artykuł ma na celu opisanie ustawień w popularnym wśród początkujących środowisku Dev-C++. Tak więc... Zaczynajmy :)

Ten artykuł opisuje zmianę konfiguracji dla środowiska Dev-C++ 5.1.0.0 64 bit. Na innych wersjach tego programu proces konfigurowania odpowiednich ustawień może być zupełnie inny!

Pliki nagłówkowe

Niektórzy początkujący programiści mają problemy ze skopiowaniem odpowiednich plików do katalogów, w których Dev-C++ szuka headerów, czyli plików nagłówkowych. Aby to wykonać, najpierw należy wiedzieć, do którego folderu należy je skopiować. Tak więc otwieramy Dev-a i postępujemy według wskazówek.

Kliknij Narzędzia/Opcje kompilatora w głównym menu IDE. Na pierwszy plan powinno wyskoczyć okno dialogowe z ustawieniami kompilatora, które wygląda mniej więcej tak:

Przechodzimy do zakładki "Katalogi", a następnie do "Pliki nagłówkowe C++". W ListBoxie powinien być podany katalog z plikami nagłówkowymi. Tak więc otwieramy Eksplorator Windows, i przechodzimy do odpowiedniego folderu.

W zasadzie dalej już każdy powinien sobie poradzić, gdyż teraz, gdy znamy katalog, wystarczy już tylko użyć 2 skrótów klawiaturowych najczęściej dzisiaj wykorzystywanych - Ctrl+C, a następnie Ctrl+V. Praktycznie jednak z tym może być różnie, tak więc najlepiej będzie to opisać na konkretnym przykładzie. Przykładem tym będzie instalacja biblioteki freeglut. Początkującym zalecam pobranie jej stąd:
SerwerDostępne wersje
https://skydrive.live.comDostępna wersja 32 i 64 bitowa.
http://www.transmissionzero.co.ukDostępna wersja 32 bitowa.

Uwaga!
Linki zamieszczone powyżej mogą być nieaktualne.

Tak więc, gdy mamy już pobranego freeglut-a, zaznaczamy 4 pliki: freeglut.h, freeglut_ext.h, freeglut_std.h, glut.h. W zależności od niektórych headerów tych plików może być mniej lub więcej - najlepiej skopiować wszystko. Przechodzimy do folderu pobranego z Deva. Powinien tam znajdować się katalog GL. Tak więc otwieramy ten folder, tworzymy tam następny katalog o nazwie np. freeglut, i kopiujemy do niego nasze headery. I... to wszystko :) Teraz w naszym kodzie możemy już używać odwołań w postaci
#include <GL/freeglut/freeglut.h>
 :)

Biblioteki

Generalnie, mówiąc o bibliotekach, mamy na myśli 2 rodzaje:
  • Biblioteki linkowane dynamicznie, tzw. DLL-ki
  • Biblioteki linkowane statycznie, najczęściej o rozszerzeniach .a lub .lib, w zależności od kompilatora.

W przypadku braku bibliotek linkowanych statycznie pojawia się charakterystyczny błąd:
undefined reference to...
. Jest to spowodowane tym, że funkcja jest gdzieś zadeklarowana, np. w pliku nagłówkowym, ale nie ma jej "ciała", czyli właściwej części funkcji.

Co zrobić, aby móc korzystać z zapisu
-llibrary
 podczas dodawania odpowiednich bibliotek do opcji projektu? Należy odpowiednie pliki .a/.lib skopiować do odpowiedniego folderu. Skąd wziąć jego nazwę? W ten sam sposób, jak uzyskaliśmy nazwę katalogu przechowującego pliki nagłówkowe, tylko zamiast do zakładki "Pliki nagłówkowe C++" przechodzimy do "Biblioteki". Teraz wystarczy skopiować do uzyskanego folderu odpowiednie pliki.

Jak pokazuje doświadczenie, suchy opis nie każdemu wystarcza. Tak więc, dokończę przykład instalacji freeglut-a.

Pobieramy freeglut. Kopiujemy odpowiednie liby, w naszym przypadku libfreeglut64.a i libfreeglut64_static.a. Przechodzimy do odpowiedniego folderu uzyskanego z Deva i wklejamy je. Można to zrobić do osobnego katalogu, np. GL/freeglut.

Pliki wgrane. Teraz należałoby je podlinkować. Klikamy Projekt/Opcje projektu w głównym menu Deva. Naszym oczom powinno się ukazać coś takiego:
Przechodzimy do zakładki Parametry, i klikamy w edicie zatytułowanym Konsolidator. Wpisujemy tam
-lGL/freeglut/freeglut64
, jeśli umieściliśmy liby w katalogu GL/freeglut, oraz jeśli używamy 64-bitowego linkera. Po wykonaniu tej czynności powinny zniknąć wszystkie błędy
undefined reference to...
 dotyczące freeglut-a.

Prawidłowo wypełniona zakładka Parametry powinna wyglądać tak:

Tabulacja

Podczas pisania kodu warto jest robić wcięcia w kodzie. Chociażby dlatego, że łatwiej jest później powrócić do projektu po jakimś czasie, w którym wszystko było na swoich miejscach.

Rozmiar wcięć każdy może sobie regulować spacją. Na pewno nie jest to jednak dobre rozwiązanie, np. przy robieniu wcięć dla 5-tej zagnieżdżonej pętli. W środowisku Dev-C++ do robienia wcięć w kodzie służy klawisz Tab. Domyślnie przeskakuje on do przodu o 4 "spacje", co jednak, gdy nam się to nie podoba, i chcielibyśmy używać 3 "spacji"?

Otwieramy Dev-C++. Wybieramy Narzędzia/Opcje edytora. Powinniśmy ujrzeć takie coś:

Jeżeli mamy zaznaczone pole Używaj znaku tabulacji, pole Rozmiar tabulatora ustawiamy na 3. Jeśli nie, wpierw je zaznaczamy. Klikamy na ok, i gotowe - Od tej pory będziemy mogli cieszyć się nieco zmniejszonym tabulatorem :)

Kolorowanie składni

Być może nie podobają nam się kolory używane przy podświetlaniu składni przez Deva. W końcu każdy ma inny gust. Co jednak zrobić, gdy kolory rażąco nam przeszkadzają? Nie, nie musimy zmieniać IDE. Wystarczy nieco poszperać w ustawieniach edytora :)

No to zgodnie z zapowiedzią klikamy na Narzędzia/Opcje edytora. Na pierwszej zakładce, którą widać w poprzednim punkcie artykułu, mamy 2 pola, które będą nas interesować. Pierwsze z nich to Edit znajdujący się pod Checkboxem "Używaj kolorowania składni". Mamy tam wpisane rozszerzenia, które Dev będzie kolorował, jeśli otworzymy dany plik za jego pomocą. W tym polu raczej nie trzeba nic zmieniać, ale gdyby komuś coś nie pasowało, może to oczywiście uczynić.

Następnym polem, które nas może zainteresować, jest pole wyboru koloru w ramce "Highlight current line". Jak łatwo się domyślić, określa ono kolor, którym Dev będzie podkreślał linijkę, w której aktualnie znajduje się kursor wpisywania tekstu.

Kolejną zakładką jest "Widok". Obejmuje on ustawienia czcionki i nie będziemy się tym teraz zajmować - nie ma w tym nic nietypowego. Tak więc przechodzimy do kolejnej zakładki, a jest nią "Kolorowanie składni". Już sama nazwa sugeruje nam, że to może być to, o co nam chodzi. U mnie ta zakładka wygląda następująco:

Mamy tutaj do wyboru wszystko co Dev koloruje. Aby przekonać się, na jaki kolor zostanie pomalowany komentarz, nie trzeba w ListBoxie szukać "Comment", wystarczy w kodzie poniżej kliknąć zakomentowany kod, a Dev automatycznie zmieni pozycję, w tym wypadku na "Comment". Można także zmienić ogólne ustawienia kolorów, wybierając jako styl np. "Matrix".

Nic więcej w tym punkcie się nie znajdzie, ponieważ poza znalezieniem miejsca, gdzie Dev umożliwia zmianę kolorów nie ma tutaj nic niestandardowego :)

Skróty klawiaturowe

Dev-C++ pozwala konfigurować skróty klawiaturowe tak jak tylko mamy na to ochotę. Wykorzystajmy to do zmiany niektórych ustawień, i dodajmy skróty pozwalające na szybkie otwarcie opcji edytora, kompilatora i środowiska.

Otwieramy Deva. W menu wybieramy Narzędzia/Konfiguruj skróty. Otworzy nam się okienko, w którym można dowolnie modyfikować wszystkie skróty, a wygląda ono tak:

W tym okienku wyszukujemy "Narzędzia:Opcje kompilatora", klikamy na nie i naciskamy np. Alt+K. Podobnie postępujemy z opcjami środowiska i edytora, naciskając Alt+S i Alt+E. Klikamy OK. Od tej pory możemy cieszyć się łatwym dostępem do wybranych opcji naszego IDE :)

DevPaki

Czym są DevPaki? Są one swojego rodzaju rozszerzeniami do Deva - umożliwiają nam łatwe zainstalowanie potrzebnych bibliotek. Strona, z której można pobrać DevPaki, znajduje się pod tym adresem.

Uwaga!
Nie wszystkie wersje Dev-C++ obsługują prawidłowo DevPaki. Przykładem takiego IDE jest Dev-C++ 5.1.0.0 64 bit, czyli ten, którego opis znajduje się w tym artykule.

Proces zainstalowania DevPaka jest bardzo prosty - po prostu otwieramy go po pbraniu za pomocą Dev-C++ Package Manager. Klikamy na Install, a później na Finish. Po wykonaniu tych dwóch jakże prostych czynności będziemy mogli cieszyć się zainstalowaną nową biblioteką :)

Informacje o programie

Wszystkie "lepsze" programy mają ustawione wiele ciekawych rzeczy - takich jak ikonka, czy informacje o autorze. Zobaczmy, jak te informacje w łatwy sposób dodać do naszego programu za pomocą środowiska Dev-C++.

Otwieramy Deva i klikamy na Projekt/Opcje projektu. Otwiera nam się okno dialogowe. W dolnej ramce zatytułowanej "Ikonka" możemy ustawić ikonę, która będzie wyświetlana razem z naszym programem. Klikamy "Przeglądaj" i wybieramy interesujący nas obrazek.

Następnym zadaniem będzie przełączenie na zakładkę "Informacje o wersji", która wygląda tak jak na tym screenie:

Zaznaczamy checkboxa "Dołącz informacje o wersji do produktu", jeżeli był niezaznaczony, i możemy teraz konfigurować informacje, które zostaną dodane do pliku nazwa_projektu_private.rc po naciśnięciu przycisku OK. Warto przetestować działanie poszczególnych pól - niekiedy efekty mogą być ciekawe :)

Eksport kodu

Dev-C++ oferuje wygodną w przypadku wstawiania swoich kodów na stronę www funkcjonalność. Potrafi on mianowicie eksportować nasz kod do 2 formatów - HTML i RTF. W tym punkcie omówimy tylko HTML, ponieważ eksport do RTF-a wygląda dokładnie tak samo.

Otwieramy Deva, i wpisujemy swój kod, niech to będzie np. wypisanie kultowego "Hello World!":
C/C++
#include <iostream>

using std::cout;

int main( int argc, char * argv[] )
{
    cout << "Hello World!\n";
    return 0;
}

Z menu wybieramy Plik/Eksportuj/do HTML, i wybieramy miejsce zapisu pliku HTML na naszym dysku. Teraz wystarczy tylko skopiować kod źródłowy i wstawić na stronę :)

Na zakończenie

Mam nadzieję, że po lekturze tego artykułu środowisko Dev-C++ stanie się wam bliższe i wygodniejsze w użyciu. Mam też nadzieję, że nie zanudziłem na śmierć, ale pomogłem dowiedzieć się o kilku ciekawych opcjach Deva :)