Cursuri pentru crearea de jocuri pe c

Pentru a înțelege de ce nu lucrați, trebuie să înțelegeți ce este linkovka. Pentru a face acest lucru, trebuie să înțelegem ce face g ++ (precum și alte compilatoare plus)

Comportamentul implicit (fără steaguri / opțiuni speciale).

În mod implicit, g ++ efectuează mai mult decât doar compilația, ci și linker-ul pentru rezultatul de compilare (fișier cu extensia * .o sau * .obj). Un astfel de fișier (* .o) nu poate fi creat, versiuni diferite ale compilatorului pot apela imediat linker-ul.

Ce este în neregulă cu comportamentul implicit.

Nu este posibil să creați un executabil care să conțină mai mult de un fișier * .cpp. Adică dacă există două sau mai multe fișiere * .cpp în proiect, este necesar să modificați comportamentul compilatorului utilizând opțiuni speciale care împiedică apelantul să sune automat.

Cum se creează executabile din multe fișiere * .cpp

1. Compilați fiecare fișier * .cpp separat, cu o opțiune care indică faptul că ieșirea ar trebui să fie * .o fișier.

2. Conectați fișierele * o într-o singură.

În cazul tău, trebuie să faci ceva de genul:

g ++ -c -o main.o main.cpp

g ++ -c -o renderSystem.o renderSystem.cpp

g ++ -o joc.exe main.o renderSystem.o

Nu am folosit g ++ pe Windows, așa că nu pot garanta că acest exemplu va funcționa. Dar sper că principiul general este clar.

Deci ce este linkovka?

Deci, pentru proiectele multifile, este obișnuit să se utilizeze scripturi speciale pentru construirea, așa-numitul makefile. Într-un astfel de fișier, este descris în ce ordine și cu ce opțiuni este necesar să se compileze fișierele, precum și cum să le conectați.

Dacă memoria îmi servește corect, studioul vizual creează automat un astfel de fișier, din păcate nu este compatibil cu g ++.

Mai mult decât atât, în lume există multe variații și standarde diferite ale makefile-ului, aproape fiecare prim IDE dezvoltator "inventează" versiunea sa de makefile incompatibilă cu restul.

Aplicațiile care execută aceste fișiere makefile se numesc sistemul de construire. În linux cele mai frecvente sunt, probabil, make and cmake. În plus față de acestea, există încă multe sisteme de construcție: sconturi, mașini automate, grale, waf. mii dintre ei.

Sistemul de construire citește fișierul makefile din proiect și solicită instrumentele (g ++, linker sau ce programe specifice pentru acest proiect), în conformitate cu instrucțiunile din script.

Articole similare