C++ programok lefordítása

Programok

Órákon a szabad GNU Compiler Collection C++ fordítóját használjuk, amely minden Linux disztribúcióban megtalálható. Windowsos változata letölthető a http://www.mingw.org címről (a MinGW-xxx.exe fájllal érdemes próbálkozni). C++ fordításhoz legalább a 3.0-ás verziót jó használni, de minél újabbat sikerül szerezni, annál jobb.

A C++ programokat sima szöveges fájlokban kell elhelyezni. Linuxon minden szövegszerkesztő ilyet hoz létre, Windowson például a Notepad ilyen (a Word semmiképp!). A laborokban a Crimson Editor nevű ingyenes szövegszerkesztőt telepítettük, amely letölthető a http://www.crimsoneditor.com címről.

A fordító használata

A fordítóprogramot a g++ paranccsal lehet meghívni. Hasznos kapcsolói (kis- és nagybetűkre figyelni!):

Javasolt használat egy fájlból álló program esetén:

g++ -W -Wall file.cpp -o file

A make program

A make program segítséget tud nyújtani a programok lefordításához. Például, automatikusan ki tudja találni, milyen paranccsal lehet lefordítani egy C++ forrásfájlt. Ha az aktuális könyvtárban létezik egy file.cpp nevű fájl, akkor a make file parancs hatására a make kitalálja, hogy a g++-t kell használni, és kiadja a g++ file.cpp -o file parancsot.

A make beállításai

A beállításokat egy Makefile nevű fájlban kell elhelyezni az aktuális könyvtárban. (Unixon figyeljünk a nagy M betűre!) Ebbe a fájlba többek között olyan beállításokat is el lehet helyezni, amelyekkel a fordítóprogramok kapcsolóit lehet megadni. Például, ha a Makefile tartalma a következő:

CXXFLAGS = -W -Wall
az arra utasítja a make-et, hogy a C++ fordítóprogramnak adja át a -W -Wall kapcsolókat. A make file parancs ezentúl a g++ -W -Wall file.cpp -o file parancsot fogja végrehajtani.

Több fájlból álló program

A make-nek ilyenkor szabályokat kell megadni, hogy milyen fájlokat kell használni a program előállításához, és a parancsokhoz is kell neki egy kis segítség. Például, ha a file1.cpp és file2.cpp fájlokból szeretnénk előállítani a prog nevű futtatható programot, és a két C++ fájl közösen használja a prog.h fejlécfájlt, akkor a következő szabályok kellenek a Makefile-ba:

file1.o: file1.cpp prog.h
file2.o: file2.cpp prog.h
prog: file1.o file2.o
	g++ file1.o file2.o -o prog

Figyelem! Fontos, hogy az utolsó sorban, a parancs előtt egy igazi tabulátor karakter álljon, ne pedig szóközök! A make prog parancs így lefordítja mindkét fájlt, majd összeszerkeszti a kapott tárgykódú fájlokat. A szerkesztő parancsot sajnos nem tudja magától kitalálni, azt oda kellett írni. Ha nincs szükség fejlécfájlra (ami elég valószínűtlen), akkor az első két sort el is lehet hagyni. Ebbe a fájlba is érdemes betenni (az elejére) a CXXFLAGS=... sort.