Portál AbcLinuxu, 30. dubna 2024 01:24


Dotaz: Ako lustit zdrojove kody ?

19.11.2003 22:37 Kinnon
Ako lustit zdrojove kody ?
Přečteno: 192×
Odpovědět | Admin
Dobry den, Som sice zaciatocnik, ale ako sapozeram na rozne problemy, pri kompilacii a podobne, tak je urcite nevyhnutne vediet alebo aspon poznat C, C++. Ja by som sa vas chcel opytat, (cisto teor.) na vase skusenosti, ako ste sa ucili, resp. z akych amterialov ste sa zacali ucit programovat pod linuxom. Bol to LEN google, alebo aj nejake spec. literatury. A tiez ako postupujete napr. , ked vam zlyha make v pripade prekladu zdrojaku. Viem, ze je to velmi teoreticka a vseobecna otazka, ale neviem, presne kde zacat. dakujem za napady, rady:)
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.11.2003 22:56 slesik | skóre: 4
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Myslim, ze pro zacatecni seznameni s programovanim, zejmena C, je nejlepsi zelena kniha "Ucebnice jazyka C" od Pavla Herouta. A stoji okolo stovky i se zdrojakama. Myslim, ze ji tady vetsina bude znat ;)
19.11.2003 23:34 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
Jj, na základy C je Herout asi to nejlepší, co je. Pokud člověk začne programovat, tak z něj sice tak za tři týdny vyroste, ale i tak rozhodně stojí za to. Kompilátor a linker na Linuxu mají samozřejmě svá specifika, nicméně těmi bych se zabýval až po pochopení základů. Je samozřejmě dobré umět alespoň základ od všech možných jazyků (a jejich obvyklých systémů distribuce a instalace -- Java, Perl, Python, etc. mají každý svoje jary, MakeMakery, distutilsy, etc.), aby na to člověk nekoukal jako tele na nová vrata, ale to je na roky... Jsou schopnosti, jako např. nacházení toho, co je vlastně ta důležitá chyba v těch dvaceti obrazovkách, co to na mě právě vyplivlo, které člověk asi musí získat praxí. Pokud jde o problémy s kompilací, tak zásadní je porozumět make -- v Heroutovi něco myslím je, už si nevzpomínám co přesně. Ale řekl bych, že sekce Introduction v info stránkách make je dost srozumitelná. Většina programů (v C, C++) dnes ovšem používá GNU auto- nástroje (automake, autoconf, libtool, příp. další), které tvoří jakousi nadstavbu nad make, kompilátorem, linkerem a dalšími programy. K nim existuje kromě info stránek např. GNU autobook, která je sice mírně zastaralá, ale nějaké základy poskytuje. A v poslední době k nim přibyl ještě pkg-config, ale k tomu nevím, jestli existuje rozumná dokumentace. Když něco selže, tak se kromě zkušeností hodí: editor se zvýrazňováním syntaxe pro všechny myslitelné jazyky (tj. vim ;-) grep, ctags (pokud už se do zdrojáků skutečně zanořuji, je nedocenitelný), diff & patch (příp. gvimdiff). Nejčastějším problémem jsou nicméně špatně nastavené cesty nebo chybějící hlavičkové soubory/knihovny -- k řešení těchto situací je třeba vědět, co je CFLAGS, LDFLAGS a spol., k čemu jsou optiony -L a -I gcc, jaké jsou obvyklé optiony configure, ... a asi 100 dalších věcí. Ve výše uvedeném jsou sice na všechno odpovědi, ale universální metodu kdybych měl, tak si ji nechám patentovat.
19.11.2003 23:38 Kinnon
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
Mal by som otazku k poslednemu odstavu, ktory ste napiali v prispevku. "-- k řešení těchto situací je třeba vědět, co je CFLAGS, LDFLAGS a spol." Co presnejesie by som si mal precitat aby som nasiel odpovedat NAPR. na uvedene CSFLAG, LDFLAGS.? Dik
20.11.2003 00:34 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
Tohle je záležitost make -- konkrétně implicitních pravidel make (Implicit Rules -> Implicit Variables v infu). Ale zároveň záležitost konvence, protože je prostě zvykem pojmenovávat proměnné stejně, i když používám vlastní pravidla -- stejně jako se např. v C argumenty main() pojmenovávají argc a argv, i když se vlastně mohou jmenovat jakkoli. Takže si vyber... ;-) Pokud ses ptal na nějaký slušný úvodní text, tak to mě bohužel nic nenapadá.
Stanislav Brabec avatar 20.11.2003 11:47 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
Ne tak docela. Pro auto-nástroje už to je pevně dáno: CPPFLAGS volby pro preprocesor CFLAGS volby pro kompilátor C CXXFLAGS volby pro C++ LDFLAGS volby pro linker a další (viz info automake, info autoconf, příp. info libtool) I pro GNU GCC kompilátor je to pevně dáno: LIBRARY_PATH volby pro linker "neviditelné" pro make C_INCLUDE_PATH volby pro preprocesor "neviditelné" pro make (více viz info gcc, man gcc)
20.11.2003 13:52 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
Do toho jsem nechtěl zabíhat... auto-tools se stávají postupně paranoidnějšími a paranoidnějšími ... v automake 1.7 např. už nesmím nastavit hodnotu CFLAGS/LDFLAGS, prtotože je to ,uživatelská` proměnná, etc.
Stanislav Brabec avatar 20.11.2003 15:53 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
To je jedině dobře! Kdo to má potom opravovat, když si nastavíte CFLAGS=-fno-strict-aliasing a ona na to půlka knihoven v balíku nezareaguje.
20.11.2003 16:48 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
Problém je, že tohle rozdělení na proměnné, které si někde syslí Makefile interně a které má/může měnit uživatel, nikdy neexistovalo -- tedy až do automake-1.7. A programy, které auto-tools nepoužívají, mohou mít logiku zacházení s CFLAGS úplně jinou -- např. že CFLAGS obsahuje kompletní optiony kompilátoru... Navíc mají proměnné z příkazové řádky přednost před proměnnými v Makefile, takže o co jde?
22.11.2003 21:11 Beda
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
pokud je spatne napsany makefile(.in), tak te ani standardizovane promenne nezachrani...
22.11.2003 23:28 Libor Klepac | skóre: 45 | Mýto
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
jeste je take dobre chodit na ZCU a ke knizce "Ucebnice jazyka C" od P. Herouta si pripsat predmet "Programovani v jazyce C" s panem P. Heroutem :-),ale bohuzel tam je to ZCU podminkou
jinak tahle knizka je opravdu skvela...zacinam s ni a s C a je to opravdu dobre zpracovano
libor
Urine should only be green if you're Mr. Spock.
19.11.2003 22:58 Vlastimil Ott | skóre: 66 | blog: Plastique | Opava
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mám Slackware, ale céčko mi (bohužel) nic neříká. Myslím, že se bez toho dá obejít. Ovšem pokud je to hobby, je to něco jiného... ;-) --vo
Práce: Liberix, o.p.s. | Blog: OpensourceBlog.cz | Online kurz Zlatý WordPress
20.11.2003 07:35 Michal Eibl
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
No, mne do toho pěkně uvedla kniha Linux - začínáme programovat. Jsou tam základy programování v BASH, C (různá témata včetně vláken, rour, odvšivování (:) debuging)) i základní popis jak vypadá makefile a pravidla pro jeho psaní, Tcl a možná ještě něco, na co jsem si teď nevzpomněl...
20.11.2003 09:22 Medved | skóre: 12
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Google staci ;-). Pokud si jim najdes knihu od Bruce Eckela : "Thinking in the C++" - je volne ke stazeni na jeho webu a leckde jinde.
20.11.2003 13:54 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
To je dobrá kniha. Ale dovzíš se z ní, jak správně programovat v C++ a trochu jak navrhovat svoje programy -- při praktických problémech s kompilací a portováním cizích programů je téměř bezcenná.
20.11.2003 16:28 Medved | skóre: 12
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
No vsak. Vzdyt on se chce naucit programovat (jsem z toho dotazu pochopil ;-) ). Nebo ne? :-).
20.11.2003 16:42 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Ako lustit zdrojove kody ?
Ptá se na víc věcí. Takže jsem upřesnil, že té části ,,ako postupujete napr., ked vam zlyha make v pripade prekladu zdrojaku`` se netýká, týká se jen první.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.