Trzy kroki do użycia biblioteki

2008-11-10 20:03

Żeby w C++ użyć w naszym programie kodu pochodzącego ‘z zewnątrz’ – a więc jakiejś biblioteki – trzeba się trochę napocić. Musimy bowiem odpowiednio “nakarmić” informacjami zarówno kompilator, jak i linker, co czasami skutkuje tym, że konieczne są w sumie trzy kroki. Są to:

  1. Dodanie odpowiedniej biblioteki statycznej (.lib) do wejścia linkera. W Visual C++ jest to uzupełnienie pola Additional Dependencies w zakładce Linker > Input we właściwościach projektu (można to także osiągnąć dyrektywami #pragma bezpośrednio w kodzie).
  2. Dołączenie odpowiednich plików nagłówkowych do naszego kodu – oczywiście przy pomocy dyrektywy #include. To ukłon w stronę kompilatora, aby mógł on poprawnie zidentyfikować wszystkie nazwy (funkcje, klasy, itp.) pochodzące z biblioteki.
  3. Odpowiednie potraktowanie ewentualnych przestrzeni nazw używanych przez kod zewnętrzny, czyli pisanie ich przed każdą nazwą (np. std::list zamiast list) lub skorzystanie z dyrektyw using.

To w sumie całkiem sporo pracy, wynikającej z niezbyt zautomatyzowanego sposobu budowania programów. W innych językach (głównie w tych, których pojęcie ‘projektu’ jest częścią ich samych, a nie tylko IDE) drugi z tych kroków często nie występuje w ogóle, bo został całkowicie zintegrowany z trzecim. Zawsze jednak trzeba wyraźnie wskazać, gdzie znajduje się kod biblioteczny, który ma zostać dołączony do naszego skompilowanego programu – czyli wykonać krok pierwszy. Ta czynność, często zapominana (bo zwykle nie znajdująca odzwierciedlenia w samym kodzie) jest bowiem najważniejsza.

Tags: ,
Author: Xion, posted under Programming »


One comment for post “Trzy kroki do użycia biblioteki”.
  1. lmmilewski:
    November 11th, 2008 o 16:27

    Myślę, że nie jest tak źle jak piszesz :-) Kroku 2 można łatwo uniknąć jeżeli biblioteki trzyma się w jakiś sensowny sposób na dysku (lub przynajmniej ma się jakiś indeks takich bibliotek).

    Ładnie widać to na przykładzie Javy – w Eclipse wystarczy wybrać coś typu “importuj zależności” i wszystko się samo zrobi (nie wiem dokładnie, bo nie korzystam).

    Myślę, że napisanie swojego skryptu, który by to robił nie jest trudne. Następnie wystarczy zintegrować to ze środowiskiem i po kłopocie.

    Tak na prawdę można pozbyć się też kroku 1. Czyli zostaje tylko 3 – używać biblioteki, czego chyba nie da się wyeliminować (ale można usprawnić przez jakieś intellisense).

    W ogóle fajna notka! Uświadomiłem sobie właśnie przydatność tego typu narzędzia. Jak będę miał trochę więcej czasu to na pewno spróbuję coś takiego napisać ;-)

Comments are disabled.
 


© 2017 Karol Kuczmarski "Xion". Layout by Urszulka. Powered by WordPress with QuickLaTeX.com.