Hallo Wereld
het "verplichte" Hello World programma
Iedere cursus programmeren begint met het schrijven van het meest simpele programma mogelijk, dat ook nog iets doet.
Dit is het "Hallo Wereld" (of "Hello World!') programma.
Het enige wat dit programma doet is het weergeven van de tekst "Hallo Wereld!" op de commandoregel
hallowereld.cpp:
import <iostream>;
int main()
{
std::cout << "Hallo Wereld!" << std::endl;
return 0;
}
gcc
(GNU Compiler Collection) nodig1. Met name de volgende
snapshot: gcc-11-20201227.tar.xz
nodig. Deze kun je downloaden
vanaf een van de mirror servers van het gcc
projectkijk hier voor
installatie instructies voor gcc
(broncode).
g++ -fmodules-ts -std=c++20 hallowereld.cpp -o hallowereld
Het argument
-fmodules-ts
is nodig om de modules
ondersteuning van
de compiler te activeren.
Het argument
-std=c++20
geeft aan dat de compiler de C++20 compatibiliteit moet
aanzetten, dit is voor dit voorbeeld niet nodig, maar het kan geen kwaad op dit voor de
zekerheid erbij te zetten.
De uitvoer van dit commando is (momenteel) nogal teleurstellend:
In module imported at hallowereld.cpp:1:1:
/opt/gcc-11/include/c++/11.0.0/iostream: error:
failed to read compiled
module: No such file or directory
/opt/gcc-11/include/c++/11.0.0/iostream: note: compiled module file is ‘gcm.cache/./opt/gcc-11/include/c++/11.0.0/iostream.gcm’
/opt/gcc-11/include/c++/11.0.0/iostream: note: imports must be built before being imported
/opt/gcc-11/include/c++/11.0.0/iostream: fatal error:
returning to the
gate for a mechanical issue
compilation terminated.
De oorzaak van deze foutmelding is dat er geen module van iostream
bestaat en daarom kan g++
deze ook niet vinden.
- Kopiëer de iostream header naar de broncode directory van je programma
(ik heb gcc-11 geïnstalleerd in
/opt/gcc-11
dus moet ik het bestand kopiëren van /opt/gcc-11/include/c++/11.0.0/iostream - De module compileren met het commando:
g++ -fmodules-ts -std=c++20 -c -x c++-system-header iostream
Als alles goed verloopt zie je nu een directory met als naam gcm.cache
en in een subdirectory van deze directory
(gcm.cache/opt/gcc-11/include/c++/11.0.0
) staat nu een bestand met
naam iostream.gcm
Dit bestand kunnen we gewoon in deze directory laten staan, en als we nu (vanuit de
directory waarin het broncode bestand staat) het commando: g++ -fmodules-ts
-std=c++20 hallowereld.cpp -o hallowereld
uitvoeren, zal het programma
correct compileren.
Als we nu kijken staat er een uitvoerbaar bestand met als naam
hallowereld
en als we dit uitvoeren verschijnt de boodschap
Hallo Wereld!
op het scherm.
We hebben ons eerste C++ programma geschreven en uitgevoerd, én we zijn klaar om te werken met de nieuwe faciliteiten (zoals modules) die C++20 ons aanbied.