Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Kompilator

 

Komputer jaki jest, każdy widzi ;-). Jak wiadomo potrafi on operować wyłącznie na liczbach. Jeśli chcemy przy jego pomocy retuszować zdjęcie, musimy go zamienić na postać cyfrową. Podobnie jest z tekstem programu. Komputer nie rozumie tego, co ty sobie tam wypisujesz. Dlatego również tekst programu musi być zamieniony na zrozumiałe dla komputera rozkazy cyfrowe. Do tego służy specjalny program, tak zwany Kompilator. "Czyta" on tekst twojego programu i zamienia na cyfrowe komendy dla komputera, które umieszcza w pliku wynikowym. Nie jest to jeszcze gotowy prorgam, który można uruchomić. Dlaczego tak jest? Zaraz wszystko się wyjaśni :-).

 

A teraz troszkę cię postraszę: Język C++ nie ma komend do obsługi dysków, drukarek, grafiki i innych przydatnych rzeczy! :-o Myślisz teraz pewnie: "To po co ja mam się go uczyć?" Spoko! Chodzi po prostu o to, że sam rdzeń języka ich nie posiada. Jeśli jednak chcemy, by nasz program w C++ mógł korzystać z plików czy rysować na ekranie, musimy dodać mu tak zwaną bibliotekę, która zawiera zestaw komend do robienia konkretnych rzeczy [na przykład obsługi plików]. Dlaczego tak jest? Z kilku powodów. Po pierwsze możesz wybrać, co będzie ci potrzebne. Nie musisz dołączać na przykład biblioteki do obsługi plików, jeśli twój program tego nie wymaga. Dzięki temu program zajmuje mniej miejsca. Drugi powód stosowania bibliotek to przenośność. Dzięki bibliotekom programy pisane w C++ mogą być kompilowane na różnych platformach [np. Linux, Windows]. Dajmy na to masz napisany program pod Windows. Chcesz jednak mieć też jego wersję Linuxową. Co robisz? Jeśli tylko twój program korzysta z bibliotek standardowych [mających swoje wersje dla różnych systemów], to wystarczy że skompilujesz program pod Linuxem, dołączysz Linuxowe wersje bibliotek i sprawa załatwiona! I wreszcie trzeci powód stosowania bibliotek: ułatwienie pracy programistom. Po co ponownie wymyślać koło jeśli ktoś już to zrobił przed nami? Istnieje wiele gotowych bibliotek przeznaczonych do różnych zadań, napisanych przez fachowych programistów :-J. Jeśli ktoś kiedyś wymyślił, jak korzystać z plików i zrobił do tego bibliotekę, to my nie musimy już tego robić, tylko dołączamy tą gotową bibliotekę w naszym programie. Oszczędność czasu, roboty i co najważniejsze nerwów ;-D.

 

Program napisany w C++ najczęściej rozdzielony jest na kilka plików. Pierwszym tego powodem jest czytelność kodu. Chyba nikt nie lubi przekopywać się przez kilkanaście stron tekstu, żeby zmienić jeden wyraz! Jest jeszcze drugi powód. Wyobraź sobie teraz, że masz napisaną przez ciebie bibliotekę i chcesz ją udostępnić innym programistom. Nie chcesz jednak, żeby oni podglądali lub przerabiali twój kod, bo to jest twoja "tajemnica zawodowa" ;-). Co zrobić? Rozdzielasz kod źródłowy twojej biblioteki na dwa pliki - plik nagłówkowy [z rozszerzeniem h] i plik implementacji [z rozszerzeniem cpp]. Pierwszy z nich będzie zawierał tylko deklaracje [zapowiedzi] wszystkich danych i funkcji, natomiast w drugim umieścisz kod odpowiedzialny za "działanie" wszystkich funkcji. Teraz wystarczy, że skompilujesz plik cpp do postaci pliku wynikowego lub biblioteki, który wraz z plikiem h możesz podarować komuś innemu :-). Ten ktoś w żaden sposób nie dowie się, jak działa twój kod, bo dostanie go w wersji skompilowanej. Może co najwyżej zajrzeć do pliku nagłówkowego by sprawdzić, jakie funkcje siedzą w twojej bibliotece, po czym użyć tych funkcji w swoim programie. Na koniec, żeby wszystko grało, musi jeszcze dołączyć twoją bibliotekę do swojego programu.

 

Dzielenie kodu źródłowego na wiele plików przydaje się szczególnie w dużych grupach programistycznych. Programiści pracujący nad jakimś większym projektem [np. grą] zazwyczaj dzielą się robotą. Program jest dzielony na moduły i każdy programista pisze inny moduł programu. Na końcu składa się wszystkie pliki w gotową całość. Ponieważ plików składających się na gotowy projekt może być wiele, proces budowy gotowego programu składa się z kilku etapów. Najpierw dla każdego pliku wywoływany jest kompilator, który kompiluje kod źródłowy do postaci osobnych plików wynikowych. Pliki te zawierają jednak puste miejsca, bo kompilator nie zna adresów funkcji napisanych w innych plikach i zostawia puste miejsca przy odwołaniach do tych funkcji. Dlatego gdy już wszystko zostanie skompilowane, rozpoczyna pracę specjalny program, tak zwany Linker, który uzupełnia te puste miejsca i łączy wszystkie pliki wynikowe w gotowy plik wykonywalny, czyli taki, który można już uruchomić. W systemie Windows jest to plik z rozszerzeniem exe. Proces budowy programu przebiegać może na przykład tak:

 

 

plik1.cpp ---kompilator---> wynik1

plik2.cpp ---kompilator---> wynik2

plik3.cpp ---kompilator---> wynik3

 

wynik1 + wynik2 + wynik3 + biblioteka ---linker---> program.exe

 

 

Wydawać by się mogło, że kompilacja to wyjątkowo skomplikowany proces! Przecież trzeba przepuścić wszystkie pliki przez kompilator, a następnie połączyć pliki wynikowe przy pomocy linkera. Cholernie żmudne zajęcie! Ale na szczęście ktoś już kiedyś o tym pomyślał i napisał specjalne programy, tak zwane Zintegrowane Środowiska Programistyczne [ang. Integrated Development Environments, w skrócie IDE]. Aplikacje takie zawierają edytor tekstowy, w którym wpisujesz swoje programy. Niektóre z nich oznaczają też na kolorowo słowa kluczowe języka. Gdy już napiszesz program, uruchamiasz proces budowania. Środowisko programistyczne samo skompiluje wszystkie potrzebne pliki, dołączy wybrane przez ciebie biblioteki i zlinkuje gotowy plik wykonywalny :-). Środowiska takie zawierają też edytory różnych dodatkowych plików, takich jak pliki zasobów, pliki pomocy, pliki instalacyjne itd. Posiadają też zwykle sporą dokumentację do bibliotek standardowych. Idealny warsztat pracy dla każdego programisty! :-)

 

Skąd wziąć takie narzędzia programistyczne?

Do systemu Linux zazwyczaj jest już dołączony kompilator C++ i linker. Użytkownicy Windowsa mają trochę gorzej, bo będą musieli je sobie sami skombinować. Microsoft zdziera za swojego Visual C++ kupę kasy, więc raczej nie polecam [chyba że wycierasz tyłek dolarami ;-)]. Czasami pełne środowiska programistyczne, takie jak Borland C++ są umieszczane na płytkach dołączonych do gazet komputerowych. Niestety są to najczęściej wersje trial, działające przez 30 dni, albo mające jakieś ograniczenia. Na szczęście jest też kilka darmowych kompilatorów! 8-) Ba, nawet całych środowisk programistycznych! Można je ściągnąć z sieci [poszukaj na mojej witrynie w dziale Linki do stron oraz Pliki do ściągnięcia]. Osobiście używam środowiska Dev C++ 4, bo jest nieduże, a zarazem bardzo funkcjonalne i wygodnie się w nim koduje :-). Postaraj się jak najszybciej załatwić sobie jakieś fajne środowisko programistyczne, bo od następnej lekcji zaczynamy już kodować! :-D

  • 2 miesiące temu...
  • 1 miesiąc temu...
Opublikowano

Jeśli ktoś kiedyś wymyślił, jak korzystać z plików i zrobił do tego bibliotekę, to my nie musimy już tego robić, tylko dołączamy tą gotową bibliotekę w naszym programie. Oszczędność czasu, roboty i co najważniejsze nerwów ;-D.

 

 

Sprowadzę "tutorial" a raczej opowieść do 1 zdania... skoro już ktoś to wymyślił to po co to robić ?skoro ktoś napisał grę to po co pisać nowe ? skoro ktoś miał mózg to lepiej skorzystać z lajtowego rozwiązania niż samemu pomyśleć... jeśli programowanie masz zamiar sprowadzać do marnowania czasu i nerwów to za przeproszeniem nie pisz kurwa więcej takich tematów...

 

 

Pozdrawiam

Opublikowano

Czyli rozumiem iż podać Cie o prawa autorskie.

a ten ktoś co napisał to pierwszy wykupił prawa autorskie ???????? prawa autorskie to nie jest coś takiego , że ktoś napisze coś w stylu : "Zakaz kopiowania"

wiem że napisałeś to dawno ale musiałem to napisać

  • 4 tygodnie później...
Opublikowano

a ten ktoś co napisał to pierwszy wykupił prawa autorskie ???????? prawa autorskie to nie jest coś takiego , że ktoś napisze coś w stylu : "Zakaz kopiowania"

wiem że napisałeś to dawno ale musiałem to napisać

 

I tu sie mylisz

To jest ukryta treść, proszę

 

Prawo autorskie

Dobra objęte prawem autorskim są chronione począwszy od momentu ich powstania, bez konieczności dokonywania ich rejestracji. Na podstawie umów międzynarodowych ochrona ta obowiązuje w prawie wszystkich krajach świata.

 

Sorki za offtop ale lubie sie czepiac ;>

  • 3 tygodnie później...
×
×
  • Dodaj nową pozycję...