Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1030Okodzieiprojektach
33
przeczytaćwpodrozdziale2.4.2.Sprawdzisiętodobrze,alejedyniewprzypadkurela-
tywnieniewielkichprojektów-platformydostępnewsiecimająpewneograniczenia,
jeślichodziodziałaniawzakresiewejściaiwyjścia,np.zapisudopliku.
.Wprzypadkuwiększychprojektówrekomendowanepodejściepoleganasamodzielnym
budowaniuprojektunaswoimkomputerzezapomocąwłasnychnarzędziprogrami-
stycznych.Bytozrobić,potrzebnedwierzeczy:wmiaręaktualnawersjaśrodowiska
C++,takiegojakjakieśIDE,takjakprzedstawionezostałotowpodrozdziałach2.4i2.5,
oraznarzędzieCMake,którezostałoopisanewdodatkuwpodrozdzialeA.6.1.Choć
projektymogązostaćzbudowanelokalniejedynieprzyużyciuIDE,CMakeznacznie
ułatwiatenproces,uwzględniającwielesystemówoperacyjnych,platformprogrami-
stycznych,narzędzi,wersjiźródełetc.Jesttorównieżrzeczywistystandardbranżowy,
którydobrzejestznać.Cowięcej,niektóreIDEzawierająjużCMake.
.Ponieważoprogramowaniestaleewoluuje,mogąpojawićsięróżnicemiędzykodem
wksiążceikodemwrepozytorium.Takwięcwceluwyjaśnieniatechnikprogrami-
stycznychiwłasnościC++,punktodniesieniapowinienstanowićkodzksiążki.Jednak
abyzbudowaćaktualnąwersjęprojektu,należykorzystaćzkoduzrepozytorium.
WspółczesnekompilatoryC++toprawdziwedziełasztuki.Naprzykładprzedskonstru-
owaniemkompletnejpostaciwykonywalnejwspółczesnykompilatormożenawetdokonać
prekompilacjifragmentówkodu,atezkoleimogąnastępnieodrazuzostaćwykonaneprzez
kompilator,abyobliczyćrezultatyosiągalnenatymetapie,którenastępniemożnabezpośred-
nioumieścićwostatecznymkodzie,takbyuniknąćobliczeńwczasiewykonania.Omówimy
również,jakczerpaćkorzyściztychfunkcjonalności.Jeślijednakcośjestnietakikodsię
nieskompiluje,niekiedyniełatwojestustalićprzyczynętakiegostanurzeczyoraz-coważ-
niejsze-wjakisposóbrozwiązaćtenproblem.Kompilatorpróbujepowiedziećnam,codo-
kładniejestnietak,aleponieważbłędymogąpojawićsięwszędzieinaróżnychpoziomach,
komunikatobłędziemożestanowićprawdziwązagadkę.Kompilatorynadalniewstanie
powiedziećnam,codokładniepowinniśmyzrobić,bywykaraskaćsięzkłopotów.Byćmoże
sztucznainteligencjadanamtunowemożliwości.Nachwilędostępnetakiefunkcjonal-
nościjaknp.konceptywC++20.Jakzawsze,niecodoświadczeniaorazkontaktyzogólno-
światowąspołecznościąprogramistycznątonajważniejszezzasobów,któremogąnampomóc.
Nowięc,copowinniśmyzrobić,gdykodsięniekompiluje?Otokilkawskazówekdla
początkujących:
.Popierwsze,niepiszmydługichfragmentówkodubezsprawdzania,czysiękompilują.
Znacznielepszepodejściepoleganazorganizowaniukodu-oiletomożliwe-nasposób
nieconieliniowy:np.najpierwpiszemypustąfunkcjęipodajemyjedyniejejparametry,
anastępniekompilujemy.Podrugie,dopisujemykilkalinii-równieżnieliniowo,np.
pustąpętlę-isprawdzamy,czysiękompiluje.Dodajemywięcejlinii,kompilujemyitd.
Nakażdymetapiesprawdzamy,czypojawiłysiębłędy.Jeślitak,modyfikujemykod
wtakisposób,bysiękompilował.
.Gdynatrafiamynabłądkompilacji(lubkonsolidacji),powinniśmyzawszeprzewinąć
oknozbłędaminasamągóręisprawdzićpierwszywiersz.Pozostałebłędyczęsto
jedyniewynikiemtego,żekompilatorpotknąłsięnatympierwszym.