Pomocné programy

Tady najdete seznam programů, které pomáhají s programováním v C/C++ na Linuxu.

Jedná se o programy, na které jsem někdy „náhodou“ narazil a stály mi za to, abych si je poznamenal. Vůbec to neznamená, že je musíte všechny studovat, nebo že jsou to nejpoužívanější programy, které byste měli všechny znát. Dobře proto zvažte, zda vám stojí za ten čas, který byste potřebovali k jejich studiu.

Programy jsou v tabulce seřazeny abecedně.

Program Účel
addr2line Zadanou adresu najde ve spustitelném souboru a vypíše odpovídající řádku ze zdrojového kódu. Hodí se jako pomůcka při práci s ladícími nástroji, jako je např. valgrind.
addr2line -e binarka 0xff…
ar Tvoří archivy (jako třeba zip). Archiv ar umí využívat program ld pro vyhledávání funkcí z knihoven v tomto archivu.
as Překladač assembleru
cc Překladač jazyka C (z tohoto překladače vychází gcc = GNU cc). S cc se lze setkat na Unixech atp.
cdecl Zápis proměnné v jazyce C převede do lidské řeči (nebo obráceně). Online verze je na cdecl.org, ale bývá i součástí balíčků běžných linuxových distribucí.
clang Nový překladač jazyka C, náhrada za gcc.
clang++ Nový překladač jazyka C, náhrada za g++.
cpp Preprocesor jazyka C (první krok volaný překladačem, interpretuje makra)
cscope Interaktivní prověřování zdrojových kódů v jazyce C. Stiskněte ? pro nápovědu, tabulátor pro přecházení mezi příkazy a výsledky, CTRL+d pro ukončení cscope.
ctrace Krokování běhu programu (řádek po řádku). Hodí se na debugování, ale zdá se, že už se nevyvíjí.
colorgcc Obarvuje výstup z překladače gcc a g++
gdb GNU debbuger. Ladění běhu programu (přeloženého s volbou -g)
gcc Překladač jazyka C
g++ Překladač jazyka C++
geany Malý, jednoduchý a rychlý grafický editor zdrojových souborů C/C++. Takové mini-vývojové prostředí. Vhodný pro ty, co nemají rádi Vim či Emacs.
gprof Interpretuje výstup, který dělají programy přeložené s volbou -pg. Zobrazí graf volání funkcí a jak dlouho které volání zabralo.
gzexe Komprimuje spustitelné soubory (které zůstanou po komprimaci pořád spustitelné). Hodí se, když potřebujete ušetřit každý bajt místa na disku.
indent [-kr] Formátuje zdrojový kód, aby byl čitelnější.
ld GNU linker.
ldconfig Nastavuje vše potřebné pro použití sdílených knihoven. Spusťte jej po nainstalování nových sdílených knihoven, aby se staly pro programy dostupné.
ldd Vypíše všechny knihovny, které program využívá.
ltrace Spustí program a sleduje, jaké knihovní (library) funkce program používá. Sleduje taky signály a může sledovat systémová volání.
ltrace ./program argumenty programu
make Automatizuje překlad zdrojových souborů.
mtrace Používá se pro odhalování úniku paměti (paměti, kterou si alokujete pomocí malloc() atp., ale už ji neuvolníte).
nm Vypíše všechny funkce, které jsou součástí objektového souboru (.o, .so, spustitelného programu). Nefunguje na zkomprimované programy (pomocí gzexe).
c++filt Převede "mangled" jméno funkce z c++ knihovny/programu (získané pomocí nm) do původní formy. Např. z _ZZN3Php12IteratorImpl9functionsEvE11initialized udělá Php::IteratorImpl::functions()::initialized.
pkg-config Vypisuje volby potřebné pro překlad nebo linkování nestandardní knihovny.
ranlib Dělá totéž, co ar -s. Generuje index pro archív, aby se v něm hledali funkce rychleji.
readelf Zobrazuje informace z ELF souborů.
strings Vypíše řádky sestávající z nejméně 4 tisknutelných znaků, které najde v (obj) souboru.
strings -a -f program
splint Kontrola zdrojových souborů v jazyku C vzhledem k nebezpečným (crackery zneužitelným) nebo nadbytečným konstrukcím a neportabilitě (nepřenositelnosti).
strace Funguje podobně jako ltrace, zaznamenává systémová volání spuštěného programu.
strip Odstraní tabulky symbolů číslování řádků ze souboru typu obj nebo programu.
ulimit Nastaví, nebo vypíše různé limity prostředí (na velikosti souborů, využití procesoru, místa na disku atp.)
Zkuste: ulimit -a
valgrind Používá se pro profilování a debugování programu, podobně jako ltrac,strace, mtrace, prof atp. valgrind toho umí profilovat hodně.

Programy, které považuji za opravdu zajímavé nebo důležité, budu popisovat v následujících kapitolách.

Další balíčky k instalaci

Tady najdete seznam dalších balíčků, které byste si měli nainstalovat pro programování v C/C++. Pamatujte na to, že se v různých Linuxových distribucích mohou balíčky jmenovat trohu jinak, takže občas je to detektivní práce přijít na to, jaký balíček potřebujete.

Balíček Co obsahuje
manpages-dev Manuálové stránky, které popisují funkce jazyka C
manpages-posix-dev nebo man-pages-posix Manuálové stránky, které popisují funkce jazyka C ze standaru posix, jako jsou třeba funkce pro práci s vlákny (pthread)
glibc-doc nebo glibc-info nebo glibc-doc-reference Balíček s info stránkami ke knihovně glibc
info glibc
Komentář Hlášení chyby
Created: 23.6.2013
Last updated: 8.10.2019
Tato stánka používá ke svému běhu cookies, díky kterým je možné monitorovat, co tu provádíte (ne že bych to bez cookies nezvládl). Také vás tu bude špehovat google analytics. Jestli si myslíte, že je to problém, vypněte si cookies ve vašem prohlížeči, nebo odejděte a už se nevracejte :-). Prohlížením tohoto webu souhlasíte s používáním cookies. Dozvědět se více..