Kezdőoldal » Számítástechnika » Programozás » Egy C fordító hogy találja...

Egy C fordító hogy találja meg a header fájl alapján, melyik lib-ben van a szükséges tárgykód?

Figyelt kérdés

Próbáltam én is lib-et csinálni pár hasznos függvényből, de úgy tűnik, csak akkor működik, ha megmondom a tlink-nek, hogy fordítsa hozzá. Nem értem a gyári lib-ek, obj-k hogy kerülnek bele az exe-be.


A másik, amit nem értek, hogy ha egy külső lib-ből függvényt használok, akkor csak annak a kódját fordítja bele az exe-be, vagy az egész lib-et? Vagy azt a "modult"?


2010. dec. 1. 17:27
 1/5 anonim ***** válasza:

Ha statikus linkelésű libraryt használsz, akkor a tárgykódba belekerül a library kódja.

Ha dinamikust, akkor nem kerül bele, csak egy hivatkozás. Ekkor persze a kész .exe fájl mellé mellékelni kell a library fájlokat(windows alatt általában dll).


A fordító nem tudja, és nem is kell tudnia, hogy hol vannak a header fájlban hivatkozott dolgok implementációi. Ez a linker dolga. A linkernek meg kell adni, hogy milyen libraryket használsz. Ezzel általában nem kell foglalkoznod, ha egy jó IDE-t használsz akkor az megcsinálja helyetted.

2010. dec. 1. 23:52
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

Értem. Tehát a linkernek muszáj megadnom, hogy az enyémben is keressen implementációt.

Sima TC-t használok, parancssoros formában, az mégis megtalálja a gyári (pl. printf) kódot. Pedig sokszor a lib neve nem is azonos a header fájl nevével. Aztat hogy csinálja? Én nem tudok olyat?

2010. dec. 2. 12:30
 3/5 A kérdező kommentje:
Rendben, mondjuk megmondom a likernek, hogy x.lib-ben vannak a dolgaim. Ha azok közül egyre hivatkozok a kódban, akkor csak azt fordítja bele? Esetleg fordítsam külön a függvényeimet, és úgy csomagoljam az obj-ket egy lib-be? Úgy csak a hívottat fordítja bele?
2010. dec. 3. 11:37
 4/5 anonim ***** válasza:

Ebben nem vagyok 100%-ig biztos, de szerintem az egész statikus lib-et belerakja, de szerintem csak emiatt nem érdemes szétszedni a libet.

Ha nagyon zavar a nagy méretű exe, akkor készíts dinamikus libraryket.

2010. dec. 3. 15:58
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:

Köszönöm! Valahogy tuti kipróbálom! :D (csak nem tudom, hogy..)


Lehet, hogy hülyeséget kérdezek, bocs: A C (linker?) a nem hívott függvényeket nem paterolja ki a kész kódból optimalizáláskor?

2010. dec. 3. 16:17

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!