Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

Diskusia – 9. diel - Céčko a Linux - Statické a dynamické knižnice

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Neaktivní uživatel:25.6.2015 12:55

TIP: Při překládání shared knihoven buďte ve složce s .o soubory. Nevím jestli je to jen bug mé verze kompilátoru, ale potom bude hlásit podivné errory.

Odpovedať
25.6.2015 12:55
Neaktivní uživatelský účet
Avatar
David Novák
Tvůrce
Avatar
Odpovedá na Neaktivní uživatel
David Novák:25.6.2015 12:59

Jestli chceš, můžeš mi poslat ukázku, kdy se ti to stalo.. To bude nějaká blbost ;)

V této ukázce zatím nebyla třeba žádná adresářová struktura, ale v budoucnu se k tomu dostanu..

Odpovedať
25.6.2015 12:59
Chyba je mezi klávesnicí a židlí.
Avatar
Odpovedá na David Novák
Neaktivní uživatel:25.6.2015 13:19

Už si přesně nepamatuju, ten Makefile už nemám, ale bylo to něco na způsob toho, že *.o byly ve složce build a shared knihovna se generovala do složky out.

Odpovedať
25.6.2015 13:19
Neaktivní uživatelský účet
Avatar
David Novák
Tvůrce
Avatar
Odpovedá na Neaktivní uživatel
David Novák:25.6.2015 13:23

Tam byla nejspíš nějaká chyba v cestách.. Jinak by to určitě mělo fungovat ;)

Ale jak říkáš - linkovat ve stejné složce, jako jsou objektové soubory, je jistota.

Odpovedať
25.6.2015 13:23
Chyba je mezi klávesnicí a židlí.
Avatar
Petr Laštovička:1.7.2015 10:01

Soubor s příponou .o se nazývá object file a je výsledkem kompilace jednoho C souboru. Statické knihovny mají příponu .a a obvykle vznikají kompilací několika C souborů. Object file se zpravidla používá jen v rámci jedné aplikace, zatímco statické knihovny se využívají ke kompilaci více různých aplikací.

 
Odpovedať
1.7.2015 10:01
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovedá na Petr Laštovička
Martin Dráb:1.7.2015 11:21

Soubor s příponou .o se nazývá object file a je výsledkem kompilace jednoho C souboru. Statické knihovny mají příponu .a a obvykle vznikají kompilací několika C souborů. Object file se zpravidla používá jen v rámci jedné aplikace, zatímco statické knihovny se využívají ke kompilaci více různých aplikací.

Pokud vím, tak ten .a soubor je jenom jakýsi archív obsahující všechny "objektové" soubory dané statické knihovny. Minimálně je to jedna z možností.

Odpovedať
1.7.2015 11:21
2 + 2 = 5 for extremely large values of 2
Avatar
David Novák
Tvůrce
Avatar
Odpovedá na Petr Laštovička
David Novák:1.7.2015 13:33

Statické knihovny se už pro více aplikací příliš nepoužívají - důvody jsou zmíněné v článku.

S objektovými soubory nemáš pravdu - můžou být i produktem kompilace více .c souborů ;)
Jinak přesněji - objektový soubor je typicky binární kód před linkováním - tj. jsou v něm stále symboly (např. jména proměnných, funkcí). Při linkování (sestavení) do spustitelného souboru jsou jednotlivé objektové soubory spojeny a symboly zaměněny za konkrétní adresy.

Odpovedať
1.7.2015 13:33
Chyba je mezi klávesnicí a židlí.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!