abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:33 | Nová verze

    Byla vydána nová verze 9.13 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 21:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze

    Byla vydána nová stabilní verze 3.22.0, tj. první z nové řady 3.22, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    30.5. 00:33 | IT novinky

    FEL ČVUT vyvinula robotickou stavebnici pro mladé programátory. Stavebnice Brian byla navržená speciálně pro potřeby populární Robosoutěže. Jde ale také o samostatný produkt, který si může koupit každý fanoušek robotiky a programování od 10 let, ideální je i pro střední školy jako výuková pomůcka. Jádro stavebnice tvoří programovatelná řídicí jednotka, kterou vyvinul tým z FEL ČVUT ve spolupráci s průmyslovými partnery. Stavebnici

    … více »
    Ladislav Hagara | Komentářů: 41
    29.5. 20:33 | Komunita

    Ubuntu bude pro testování nových verzí vydávat měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 25.10 (Questing Quokka).

    Ladislav Hagara | Komentářů: 0
    29.5. 14:55 | Nová verze

    Společnost Netgate oznámila vydání nové verze 2.8.0 open source firewallové, routovací a VPN platformy pfSense (Wikipedie) postavené na FreeBSD. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    29.5. 14:00 | Nová verze

    Byla vydána nová verze 6.16 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 14.5.3. Linux na verzi 6.1.140. Další změny v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    29.5. 12:33 | Zajímavý článek

    Člověk odsouzený za obchod s drogami daroval letos ministerstvu spravedlnosti 468 kusů kryptoměny bitcoin, které pak resort v aukcích prodal za skoro miliardu korun. Darováním se zabývá policejní Národní centrála proti organizovanému zločinu (NCOZ). Deníku N to potvrdil přímo ministr spravedlnosti Pavel Blažek (ODS). Podle resortu bylo nicméně vše v souladu s právem.

    Ladislav Hagara | Komentářů: 58
    28.5. 20:44 | Nová verze

    Svobodný a otevřený multiplatformní editor EPUB souborů Sigil (Wikipedie, GitHub) byl vydán ve verzi 2.5.0. Stejně tak doprovodný vizuální EPUB XHTML editor PageEdit (GitHub).

    Ladislav Hagara | Komentářů: 0
    28.5. 12:22 | IT novinky

    Na základě národního atribučního procesu vláda České republiky označila Čínskou lidovou republiku za zodpovědnou za škodlivou kybernetickou kampaň proti jedné z neutajovaných komunikačních sítí Ministerstva zahraničních věcí ČR. Tato škodlivá aktivita, která trvala od roku 2022 a zasáhla instituci zařazenou na seznam české kritické infrastruktury, byla provedena kyberšpionážní skupinou APT31, veřejně spojovanou se zpravodajskou službou Ministerstvo státní bezpečnosti (MSS).

    Ladislav Hagara | Komentářů: 52
    Jaký je váš oblíbený skriptovací jazyk?
     (55%)
     (32%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 168 hlasů
     Komentářů: 13, poslední 30.5. 12:26
    Rozcestník

    Dotaz: gcc, preklad bez includovani

    29.7.2005 14:04 qwerty | skóre: 9
    gcc, preklad bez includovani
    Přečteno: 138×
    Dobry den,

    zajimalo by me jakto ze se prelozi muj program a normalne funguje:

    int main(void) { printf("abc"); }

    kdyz printf je deklarovane v stdio.h a to tam neincluduju. Uvazoval sem ze gcc nejak automaticky includuje standartni I/O knihovnu ale kdyz se podivam na to co vypadne po praci preprocesoru (gcc -E) tak je tam:

    # 1 "x.c" int main() { printf("abc"); }

    takze by to snad printf nemelo znat a melo byt to hodit chybu ne ?

    Odpovědi

    29.7.2005 14:14 #Tom
    Rozbalit Rozbalit vše Re: gcc, preklad bez includovani
    Proč by mělo? Když si nezapnete varování, chová se překladač podobně, jako by v programu bylo deklarováno tohle:
    int printf(int, ...);
    
    A int a char * se převedou bez problémů (většinou), takže to funguje. Zkuste ale toto:
    gcc -o program -Wall -Werror -pedantic -ansi program.c
    
    6.8.2005 20:52 qwerty | skóre: 9
    Rozbalit Rozbalit vše Re: gcc, preklad bez includovani
    jeste bych k tomuto mel jednu otazku. Kdyz mam dva prelozene objektove soubory a oba obsahuji stejny symbol (napriklad v obou budu mit definici funkce xyz()) tak linker pri slinkovavani hodi kolizi. Zajimalo by me, proc takovato dvoji definice nekoliduje, pokud jedna definice je v objektovem souboru a druha je ve sdilene knihovne, ktera se linkuje spolecne s nim pri prekladu. Jako napr. kdyz si udelam definici funkce printf(char*) v nejakem souboru, tak i kdyz sdilena knihovna libc se linkuje spolecne s timto souborem, tak kolize nevznikne a volani funkce vola tu mnou definovanou. Projizdel jsem si libc readelfem a printf neni WEAK symbol.
    6.8.2005 21:09 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: gcc, preklad bez includovani
    6.8.2005 22:10 qwerty | skóre: 9
    Rozbalit Rozbalit vše Re: gcc, preklad bez includovani
    Toto ale, pokud se nemylim, hovori o dynamickem linkeru (/lib/ld-linux) jako zavadeci ktery po spusteni nejakeho spustitelneho souboru linkuje sdilene knihovny na kterych je ten spustitelny soubor zavisly. Ale ten muj problem vznika pri normalnim linkovani gcc uz pri vzniku toho spustitelneho souboru.
    6.8.2005 23:28 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: gcc, preklad bez includovani
    Jaký problém? Jeden globální symbol v programu může mít akorát jednu adresu. Když chceš v každém souboru nezávislé symboly, máš použít static. Případně mezi tím existuje ještě třída viditelnosti STV_HIDDEN (viz ten článek), kterou můžeš vytvořit symboly viditelné např. v rámci celé knihovny, ale ne mimo ni.
    6.8.2005 23:39 qwerty | skóre: 9
    Rozbalit Rozbalit vše Re: gcc, preklad bez includovani
    No jako neni to problem ale jen moje zvedavost. Proste me zajima jakto ze nekoliduje symbol z meho objektoveho souboru se stejnym symbolem ze sdileneho objektu. Oba jsou globalne viditelne (ten muj urcite je a ten z libc musi byt taky protoze pokud si napr. funkci printf sam nenadefinuju a pritom pri linkovani nebudu pridavat libc tak mi bude uz gcc pri linkovani rvat unresolved symbol) a pritom nekoliduji.. kdezto dva stejne globalni symboly ve dvou objektovych souborech koliduji (gcc linker zarve chybu). Jako je mi jasny ze mi v logice teto veci neco unika ale nevim co :)
    7.8.2005 00:06 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: gcc, preklad bez includovani
    Na hledání symbolu v té knihovně vůbec nedojde, protože je definovaný programu, takže viditelnost ničemu nevadí.

    Konflikt může být toho druhu, že se snažíš do jedné tabulky symbolů nacpat dvě definice téhož symbolu, a to ti kompilátor nedovolí.

    Nebo když budou dvě knihovny definovat symbol různě, mohou se dít zajímjavé věci v důsledku pořadí resolvování, takže části kódu dostanou něco, co nečekají. Podstatné ale je, že se symbol podle nějakého pravidla hledá v jednotlivých DSO, a když se najde, tak už se dál nehledá.

    Já nevím, zda má cenu, abych sem postupně opisoval ten článek, raději si ho přečti...

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.