C++-ban miért van szükség linkerre, ha több fájlból álló programok esetén a preprocesszorral (#include) úgyis összeollózzuk a fájlokat?
Figyelt kérdés
2017. jan. 9. 13:38
1/6 anonim válasza:
Mert kell formátum is, meg egyebek.
3/6 anonim válasza:
Includedolni headereket szokás, a linker pedig a lefordított binárist linkeli össze.
4/6 anonim válasza:
Akár úgy is gondolkozhatsz, hogy ha van minimum két forrásfájlod (.cpp, fordítási egység), akkor ahhoz mindenképpen kell. (de egyébként is kell egy forrásnál, mert van ilyen, hogy C standard library például, amit valószínűleg használsz)
5/6 anonim válasza:
Van két forrásfájlod:
a.cpp
b.cpp
A fordítóprogram ezt a két fájlt külön-külön fordítja le gépi kódra. Tehát létre fog jönni két külön állomány:
a.o
b.o
Ezeket hívjuk tárgykódnak. De ezeket a számítógép még nem tudja önmagában lefuttatni. Ennek egyszerű oka van, mégpedig nincs megteremtve az őket összekötő kapcsolat. És ez az a pont, ahol a kapcsolatteremtő (linker) jön a képbe.
Ennek a linkernek lesz ugyanis a feladata, hogy a forráskódokból lefordított tárgykódot összeszervezze egyetlen egy futtatható állományba. Ezáltal létrejön a számítógép által már futtatható program.
6/6 anonim válasza:
Szerintem amúgy egyszerűen olvass utána, hogy mi a különbség a statikus és dinamikus linkelés között, és akkor lehet megérted. (ez még mindig mehet egy forrásfájlra is)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!