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í
×
    dnes 15:55 | Komunita

    FFmpeg nechal kvůli porušení autorských práv odstranit z GitHubu jeden z repozitářů patřících čínské technologické firmě Rockchip. Důvodem bylo porušení LGPL ze strany Rockchipu. Rockchip byl FFmpegem na porušování LGPL upozorněn již téměř před dvěma roky.

    🇨🇽 | Komentářů: 3
    dnes 15:44 | Zajímavý software

    K dispozici je nový CLI nástroj witr sloužící k analýze běžících procesů. Název je zkratkou slov why-is-this-running, 'proč tohle běží'. Klade si za cíl v 'jediném, lidsky čitelném, výstupu vysvětlit odkud daný spuštěný proces pochází, jak byl spuštěn a jaký řetězec systémů je zodpovědný za to, že tento proces právě teď běží'. Witr je napsán v jazyce Go.

    🇨🇽 | Komentářů: 0
    dnes 15:33 | Zajímavý software

    Yazi je správce souborů běžící v terminálu. Napsán je v programovacím jazyce Rust. Podporuje asynchronní I/O operace. Vydán byl v nové verzi 25.12.29. Instalovat jej lze také ze Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    26.12. 18:44 | Komunita

    Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.

    Ladislav Hagara | Komentářů: 0
    26.12. 13:22 | Zajímavý software

    Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.

    🇨🇽 | Komentářů: 7
    26.12. 13:11 | Nová verze

    XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).

    🇨🇽 | Komentářů: 0
    26.12. 03:33 | Nová verze

    Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.

    Ladislav Hagara | Komentářů: 0
    25.12. 14:44 | Nová verze

    Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.

    Ladislav Hagara | Komentářů: 0
    24.12. 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 30
    24.12. 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Kdo vám letos nadělí dárek?
     (35%)
     (1%)
     (20%)
     (1%)
     (1%)
     (1%)
     (12%)
     (12%)
     (16%)
    Celkem 163 hlasů
     Komentářů: 18, poslední 24.12. 15:29
    Rozcestník

    Dotaz: gcc a podivnost s math.h

    2.8.2007 18:25 Jiří J. | skóre: 34 | blog: Poutník | Brno
    gcc a podivnost s math.h
    Přečteno: 922×
    Zdravím,
    pokouším se použít funkci sqrt z hlavičkového souboru math.h v C programu, ale nějak mi nefunguje, pokud sqrt dostane jako parametr proměnnou..
    Příkladový program jsem dost ostříhal, ale měl by fungovat:
    #include <math.h>
    
    int main ()
    {
      float x = 20;
      float y = sqrt(x);
    }
    
    při kompilaci vyhodí error
    /tmp/ccSMkv5b.o: In function `main':
    testing.c:(.text+0x40): undefined reference to `sqrt'
    collect2: ld returned 1 exit status
    
    přestože math.h je includovaný, co více, následující ukázka funguje..
    #include <stdio.h>
    #include <math.h>
    
    int main ()
    {
      float y = sqrt(20);
      printf("%f\n", y);
    }
    
    - vrátí 4.472136..

    Někde jsem četl, že místo floatů tam má být double, zkusil jsem, ale se stejným výsledkem.
    Může to být chyba v math.h? Kernel headers mám k aktuálnímu kernelu..

    Odpovědi

    2.8.2007 18:29 Jiří J. | skóre: 34 | blog: Poutník | Brno
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h
    Pardon, zapomněl jsem dodat..
    # gcc --version
    gcc (GCC) 4.1.2
    Copyright (C) 2006 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    # md5sum /usr/include/math.h
    ed13bac546997533b49b6f221ade841d  /usr/include/math.h
    
    # uname -r
    2.6.21.5
    
    # cat /etc/slackware-version
    Slackware 12.0.0
    
    2.8.2007 18:34 a7dfa
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h
    sqrt je funkce v knihovne libm, takze je treba linkovat s -lm.
    2.8.2007 18:40 Jiří J. | skóre: 34 | blog: Poutník | Brno
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h
    Díky, pomohlo, přečtu si o tom více..
    Jiří P. avatar 2.8.2007 18:36 Jiří P. | skóre: 24 | blog: programování
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h
    To nejdůležitější jste neuvedl: jaké parametry zadáváte programu gcc kterým program překládáte? Vypadá to ale na chybu linkeru - zkuste se podívat na přepínač -L pro specifikaci knihovny, která se má přilinkovat.
    In a world without fences and walls, who needs Gates and Windows?
    2.8.2007 18:39 Jiří J. | skóre: 34 | blog: Poutník | Brno
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h
    Většinou nepředávám žádné speciální u těchto "jednoduchých" programů, pokud testuji, tak ani -o , jen jméno souboru..
    andree avatar 2.8.2007 19:13 andree | skóre: 39 | blog: andreeeeelog
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h
    hadam ze ked clovek naincludeuje <stdio.h>, tak sa potrebne kniznice (-lm?) nalinkuju same... ak naincludeujes iba math.h, tak to asi prekladac neodhadne no...
    2.8.2007 19:38 Jiří J. | skóre: 34 | blog: Poutník | Brno
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h
    Já includoval i <stdio.h>, ale problém byl stejný... gcc je v něčem až moc "inteligentní" a v něčem ne...
    2.8.2007 20:06 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h
    Přestaňte, prosím, planě spekulovat a zjistěte si, jak se věci skutečně mají (třeba z odpovědí na téměř identický dotaz, který se tu objevil nedávno). Pletete si hlavičkové soubory a knihovny. Celý "problém" je v tom, že knihovna libm se nelinkuje automaticky, zatímco libc ano.
    2.8.2007 23:05 Jiří J. | skóre: 34 | blog: Poutník | Brno
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h
    Omlouvám se za to, že jsem nehledal asi dostatečně dobře (poučení) a neuvědomil jsem si, že některé funkce v math.h potřebují libm, nicméně hlavičkový soubor a knihovnu snad ještě rozeznám a poznámka o "inteligenci" gcc byla myšlena např. k případu, kdy jsem schválně překřížil 3 pole, výsledkem měl být segfault nebo vzájemné ovnivňování polí, ale gcc si všechny 3 v paměti pěkně za sebou seřadil (a není jediný).. možná to tak má být, ale podle nahlížení do starších tutoriálů tomu tak dříve nebylo...
    3.8.2007 03:15 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h

    Pokud je vám opravdu jasný rozdíl mezi hlavičkovým souborem a knihovnou, tak nechápu, proč píšete věci jako

    při kompilaci vyhodí error … přestože math.h je includovaný

    nebo

    Já includoval i <stdio.h>, ale problém byl stejný...

    Protože pak by vám mělo být jasné, že to, které standardní hlavičkové soubory includujete, nemůže mít na chybu linkeru nejmenší vliv.

    3.8.2007 13:42 petris
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h
    Já bych řekl, že jste nehledal vůbec. Zkusil jsem si pro zajímavost man sqrt a co to nevidím - hned pod deklarací funkce je: "Link with -lm."
    3.8.2007 03:22 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h
    Co se týká toho, že při linkování druhé otázky k chybě nedojde, to je způsobeno pravděpodobně tím, že v tomto případě překladač sám spočítá konstantu sqrt(20) a použije výsledek, takže v programu není vůbec potřeba funkci sqrt() volat.
    3.8.2007 15:35 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: gcc a podivnost s math.h
    …při linkování druhé ukázky…

    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.