Code::Blocks, ontwikkelomgeving voor C en C++
- June 19, 2017
- 0
Programmeren met alle hulpmiddelen direct bij de hand
Code::Blocks is een integrated development environment (IDE). Een IDE brengt het programmeren, compileren, testen en debuggen samen onder één dak. Daardoor heb je met maar een enkele grafische interface te maken. De IDE zorgt ervoor dat de verschillende tools en applicaties naadloos op elkaar aansluiten en met elkaar communiceren. Bovendien neemt de IDE veel werk uit handen. Zo zorgt code completion voor het automatisch aanvullen van functies, weet de IDE zelf vaak al hoe gecompileerd moet worden en zorgt de projectadministratie voor het in de juiste volgorde bouwen van componenten. Code::Blocks doet dit primair voor C en C++ maar ondersteunt ook andere programmeertalen waaronder Fortran en D alsmede grafische toolkits zoals GTK+.
ode::Blocks is volledig gebaseerd op plug-ins voor zijn functionaliteit. De core plug-ins zorgen voor de basisfunctionaliteit zoals code completion, syntax highlighting en ondersteuning voor diverse compilers en debuggers. Daarnaast zijn er vele extra plug-ins voor bijvoorbeeld code statistieken of integratie met doxygen en Valgrind.
INSTALLATIE
Code::Blocks is in de repository van alle belangrijke Linux distributies te vinden. Gebruik je pakket manager om de software te installeren. Sommige distributies leveren standaard alleen de core plug-ins mee. Voor de extra plug-ins dien je een aanvullend pakket te installeren. Voor Fedora is dat codeblocks-contrib.
Code::Blocks levert zelf geen compilers of debuggers. Ook deze moet je zelf installeren. Als je bijvoorbeeld op Fedora met C++ aan de gang wil, moet je het pakket gcc-c++ installeren. Om te kunnen debuggen moet je dan tevens het pakket gdb, de GNU Debugger, installeren. Het is natuurlijk goed mogelijk dat andere distributies bepaalde tools wel automatisch installeren samen met Code::Blocks.
Bij het opstarten toont Code::Blocks eerst in een pop-up venster welke compilers hij gevonden heeft. Je ziet tevens een ietwat cryptische melding bovenin. Die zegt alleen maar dat Code::Blocks geen andere ondersteunde compilers gevonden heeft. Klik dus gewoon op OK en vervolgens verschijnt de interface van Code::Blocks
PROJECT
In Code::Blocks speelt het project een centrale rol. Een project is de verzameling bestanden die samen een executable of library vormen. Maak daarom allereerst een nieuw project aan via het menu File -> New -> Project. In dit voorbeeld gebruiken we als type “Console application”. Dit staat voor een C of C++ programma dat je op de commandoregel uitvoert. Klik op het betreffende icoontje en vervolgens op Go. Er verschijnt nu een wizard. Klik op Next en kies in het volgende venster als taal C++. Klik wederom op Next. Geef nu een naam en een pad voor het project op. Klik op Next. Je ziet nu in een venster welke compiler Code::Blocks standaard gebruikt en welke folders Code::Blocks aanmaakt. We veranderen hier niets en klikken op Finish. Je ziet nu links in het tabblad Projects onder Workspace je eerste project.
WORKSPACE
Een workspace is een verzameling projecten die samen een applicatie vormen, d.w.z. bij elkaar behorende executables en libraries. De volgorde waarin de projecten staan, geeft ook de afhankelijkheid aan waarin Code::Block de build uitvoert. Op deze manier zorg je ervoor dat Code::Blocks eerst een library bouwt en vervolgens pas de executable die daarvan afhangt. De volgorde van projecten pas je aan door rechts te klikken op een project en in het contextmenu naar Project tree te gaan.
Als je meerdere applicaties bouwt, is het verstandig aparte workspaces te gebruiken. Ons eerste project staat in de default workspace. Dit is een gewoon bestand in je home directory:
~/.codeblocks/default.workspace
Klik rechts op Workspace om in het contextmenu de workspace als een ander bestand op te slaan. Ook voor een meer beschrijvende naam dan “Workspace” gebruik je dit context menu. Een workspace open je via File -> Open.
Als je een project sluit via File -> Close project haalt Code::Blocks het project uit de workspace. De bestanden worden niet fysiek verwijderd maar blijven beschikbaar inclusief de projectfile. Door een projectfile te openen via File -> Open voeg je het toe aan de workspace die je op dat moment open hebt staan.
HELLO WORLD!
Klik op het plusje links naast Sources en je ziet dat er al een bestand main.cpp is. Dat is een “Hello World!” bestand dat Code::Blocks als startpunt voor je heeft klaargezet. Dubbelklik erop en in een nieuw tabblad in het centrale deel rechts zie je de code. Compileer dit voorbeeldprogramma via Build -> Build. De uitgevoerde commando’s en het resultaat zie je beneden in het tabblad Build log. Voer nu het programma uit via Build -> Run. Code::Blocks toont in een terminal de uitvoer van het programma (zie afbeelding 1).
Maak nu je eigen programma door de broncode aan te passen. Nieuwe bestanden voeg je toe via File -> New -> Empty file. Ook nu leidt een wizard je door de opties. Als je een build uitvoert, slaat Code::Blocks automatisch al je aanpassingen op. In geval van compileerfouten zie je in de kantlijn een rode markering bij de regel met de fout. Bovendien markeert Code::Blocks in het tabblad Build messages onderin de foutmelding van de compiler.
DEBUGGEN
Om fouten tijdens het uitvoeren van je programma uit te zoeken gebruik je de debugger (zie afbeelding 2). Als je de debugger direct aanroept via Debug -> Start/Continue, voert hij het programma uit totdat het misgaat. Je ziet dan in een pop-up venster in welke regel van welk bestand het misging. In eenvoudige gevallen is meteen duidelijk waar de fout zit maar vaak moet je dieper graven. Veel gebruikte hulpmiddelen zijn dan breakpoints en een watchlist.
Een breakpoint geeft aan waar de debugger het programma moet onderbreken. Die zet je aan door met de cursor op de gewenste plek te gaan staan en vervolgens Debug -> Toggle breakpoint te gebruiken. Nog eenvoudiger is simpelweg met de cursor in de kantlijn op het gewenste regelnummer te klikken. Een rood bolletje geeft het breakpoint aan. Via Debug -> Debugging windows -> Breakpoints krijg je een lijst met gebruikte breakpoints.
De watchlist is een lijst met variabelen waarvan je de waarde wil weten. Open de watchlist via Debug -> Debugging windows -> Watches. Klik vervolgens in het blauwe vlak links. Type de naam van de variabele en druk op enter. Een alternatieve manier is door rechts te klikken op een variabele in de broncode en deze dan via het context menu toe te voegen aan de watchlist. Dit kan echter alleen als de debugger al is opgestart.
Start wederom de debugger op via Debug -> Start/Continu. De debugger stop nu bij het eerste breakpoint. In de watchlist zie in de middelste kolom de waarde en rechts het type van de variabele. Gebruik de knoppen rechtsboven om vervolgens verder door het programma te lopen. Een geel driehoekje in de kantlijn geeft aan welke instructie de debugger op het punt staat uit te voeren.
TOT SLOT
Veelal voldoen de standaard instellingen en ben je snel op weg met het eigenlijke programmeren. Natuurlijk is Code::Blocks de veeleisende programmeur niet vergeten. Via Settings -> Compiler heb je alle knoppen bij de hand om de build naar eigen inzicht bij te sturen.