NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 9 - Céčko a Linux - Statické a dynamické knihovny

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
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.

Odpovědět
25.6.2015 12:55
Neaktivní uživatelský účet
Avatar
David Novák
Tvůrce
Avatar
Odpovídá 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..

Odpovědět
25.6.2015 12:59
Chyba je mezi klávesnicí a židlí.
Avatar
Odpovídá 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.

Odpovědět
25.6.2015 13:19
Neaktivní uživatelský účet
Avatar
David Novák
Tvůrce
Avatar
Odpovídá 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.

Odpovědět
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í.

 
Odpovědět
1.7.2015 10:01
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá 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í.

Odpovědět
1.7.2015 11:21
2 + 2 = 5 for extremely large values of 2
Avatar
David Novák
Tvůrce
Avatar
Odpovídá 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.

Odpovědět
1.7.2015 13:33
Chyba je mezi klávesnicí a židlí.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.