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 17:33 | Bezpečnostní upozornění

Před šesti týdny byly publikovány výsledky bezpečnostního auditu zdrojových kódů OpenVPN a nalezené bezpečnostní chyby byly opraveny ve verzi OpenVPN 2.4.2. Guido Vranken minulý týden oznámil, že v OpenVPN nalezl další čtyři bezpečnostní chyby (CVE-2017-7520, CVE-2017-7521, CVE-2017-7522 a CVE-2017-7508). Nejzávažnější z nich se týká způsobu, jakým aplikace zachází s SSL certifikáty. Vzdálený útočník může pomocí speciálně

… více »
Ladislav Hagara | Komentářů: 0
včera 06:55 | Zajímavý projekt

V Edici CZ.NIC vyšla kniha Průvodce labyrintem algoritmů. Kniha je ke stažení zcela zdarma (pdf) nebo lze objednat tištěnou verzi za 339 Kč (připojení přes IPv4) nebo 289 Kč (připojení přes IPv6).

Ladislav Hagara | Komentářů: 6
včera 06:33 | Zajímavý software

Byla vydána verze 2.2.0 svobodného správce hesel KeePassXC (Wikipedie). Jedná se o komunitní fork správce hesel KeePassX s řadou vylepšení.

Ladislav Hagara | Komentářů: 0
včera 06:11 | IT novinky

Vývojář Debianu Henrique de Moraes Holschuh upozorňuje v diskusním listu debian-devel na chybu v Hyper-Threadingu v procesorech Skylake a Kaby Lake od Intelu. Za určitých okolností může chyba způsobit nepředvídatelné chování systému. Doporučuje se aktualizace mikrokódu CPU nebo vypnutí Hyper-Threadingu v BIOSu nebo UEFI [reddit].

Ladislav Hagara | Komentářů: 0
24.6. 01:23 | Komunita

Phoronix spustil 2017 Linux Laptop Survey. Tento dotazník s otázkami zaměřenými na parametry ideálního notebooku s Linuxem lze vyplnit do 6. července.

Ladislav Hagara | Komentářů: 3
23.6. 22:44 | Nová verze

Po třech měsících vývoje od vydání verze 5.5.0 byla vydána verze 5.6.0 správce digitálních fotografií digiKam (digiKam Software Collection). Do digiKamu se mimo jiné vrátila HTML galerie a nástroj pro vytváření videa z fotografií. V Bugzille bylo uzavřeno více než 81 záznamů.

Ladislav Hagara | Komentářů: 1
23.6. 17:44 | Nová verze

Byla vydána verze 9.3 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 3
23.6. 13:53 | Nová verze

Simon Long představil na blogu Raspberry Pi novou verzi 2017-06-21 linuxové distribuce Raspbian určené především pro jednodeskové miniaturní počítače Raspberry Pi. Společně s Raspbianem byl aktualizován také instalační nástroj NOOBS (New Out Of the Box Software). Z novinek lze zdůraznit IDE Thonny pro vývoj v programovacím jazyce Python a především offline verzi Scratche 2.0. Ten bylo dosud možné používat pouze online. Offline bylo možné používat pouze Scratch ve verzi 1.4. Z nového Scratchu lze ovládat také GPIO piny. Scratch 2.0 vyžaduje Flash.

Ladislav Hagara | Komentářů: 1
22.6. 14:24 | Nová verze

Opera 46, verze 46.0.2597.26, byla prohlášena za stabilní. Nejnovější verze tohoto webového prohlížeče je postavena na Chromiu 59. Z novinek lze zmínit například podporu APNG (Animated Portable Network Graphics). Přehled novinek pro vývojáře na blogu Dev.Opera. Oznámení o vydání zmiňuje také první televizní reklamu.

Ladislav Hagara | Komentářů: 0
22.6. 13:37 | IT novinky

I čtenáři AbcLinuxu před dvěma lety vyplňovali dotazníky věnované Retro ThinkPadu. Nyní bylo potvrzeno, že iniciativa Retro ThinkPad je stále naživu a Lenovo připravuje speciální edici ThinkPadu jako součást oslav jeho 25. výročí.

Ladislav Hagara | Komentářů: 36
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (31%)
 (1%)
 (9%)
 (44%)
 (9%)
Celkem 842 hlasů
 Komentářů: 65, poslední 1.6. 19:16
    Rozcestník

    Dotaz: Překlad jako C funguje, jako C++ ne.

    Beda0 avatar 30.12.2009 22:22 Beda0 | skóre: 28
    Překlad jako C funguje, jako C++ ne.
    Přečteno: 329×
    Zdravím, mám soubor
    
    #include "libmyxml.h"
    #include <stdio.h>
    
    int main(void) {
    
        int ret;
    	Data Str;
    	const char *uriRead = "prikladoveXML/1.xml";
    
    	  ret = DataReader(uriRead,&Str);
    	  if(ret==0)  printf("Cteni_souboru_probehlo_bez_chyb\n");
    	  else  printf("Behem_cteni_souboru_se_vyskytly_chyby\n");
    
    	return 0;
    }
    Má to načítat data z xml souborů. Funkce DataReader je v mojí knihovně libmyxml.a. V libmyml.h je definováná struktura Data. A teď k problému.
    Když se soubor jmenuje main.c a přeložím ho gcc -c main.c tak se mi normálně vytvoří main.o. Když ale soubor přejmenuju main.cpp a přeložím gcc -c main.cpp vyhodí to hlášku:
    main.cpp: In function ‘int main()’:
    main.cpp:10: error: ‘DataReader’ was not declared in this scope
    
    Neměl by tohle řešit přepínač -c?
    Můžete mi prosím někdo vysvětlit, proč to v C++ nefunguje? Nebo aspoň nasměrovat správným směrem? Díky.

    Řešení dotazu:


    Odpovědi

    30.12.2009 22:40 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: Překlad jako C funguje, jako C++ ne.

    Co mate v souboru libmyxml.h?

    Prepinac -c zajisti, ze se nebude linkovat, gcc skonci praci vytvorenim objektoveho souboru. Vas problem urcite nevyresi.

    Beda0 avatar 30.12.2009 22:47 Beda0 | skóre: 28
    Rozbalit Rozbalit vše Re: Překlad jako C funguje, jako C++ ne.
    V libmyxml.h je jen definice struktury Data.

    Co mate v souboru libmyxml.h?

    Prepinac -c zajisti, ze se nebude linkovat, gcc skonci praci vytvorenim objektoveho souboru.

    O to se právě snažím, vytvořit soubor main.o s použítím C++ - tedy když soubor přejmenuju na main.cpp nebo použiju g++.
    Výsledný program potom vytvářím dál pomocí gcc main.o -o ukazka -I. -I/usr/include/libxml2 -L. -lz -lm -lxml2 -lmyxml
    Problém je, že v C++ se mi nedaří vytvořit soubor main.o a skončí to tou chybou.
    Beda0 avatar 30.12.2009 22:51 Beda0 | skóre: 28
    Rozbalit Rozbalit vše Re: Překlad jako C funguje, jako C++ ne.
    Tohle je jen ta nejzákladnější část, která se mi nedaří. Snažím se použít mojí knihovnu v qtcreatoru a nedaří se mi, proto jsem se snažil najít příčinu a dostal jsem se k tomuhle problému.
    Beda0 avatar 30.12.2009 23:00 Beda0 | skóre: 28
    Rozbalit Rozbalit vše Re: Překlad jako C funguje, jako C++ ne.
    Už mi to trochu dochází, moje knihovna libmyxml.a je psaná v C a pokouším se ji použít v C++ programu, což by mělo při dodržení určitých pravidel jít, nebo ne? Ale proč selže kompilace main.o, kde se libmyxml.a ještě vůbec nepoužila?
    30.12.2009 23:20 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: Překlad jako C funguje, jako C++ ne.

    Dokud sem nedate kompletni kod, ktery nejde zkompilovat, tak se to tezko dozvite. Napriklad tohle se prelozi:

    #include <stdio.h>
    
    struct Data
    {
            int dummy;
    };
    
    int DataReader(const char*, Data*);
    
    int main(void) {
    
            int ret;
            Data Str;
            const char *uriRead = "prikladoveXML/1.xml";
    
            ret = DataReader(uriRead,&Str);
            if(ret==0)  printf("Cteni_souboru_probehlo_bez_chyb\n");
            else  printf("Behem_cteni_souboru_se_vyskytly_chyby\n");
    
            return 0;
    }
    Beda0 avatar 30.12.2009 23:34 Beda0 | skóre: 28
    Rozbalit Rozbalit vše Re: Překlad jako C funguje, jako C++ ne.
    Díky moc. Problém byl v řádku
    int DataReader(const char*, Data*);

    který v hlavičkovém souboru nebyl a při kompilaci jako C to nevadilo, ale C++ to vadilo.
    31.12.2009 03:12 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Překlad jako C funguje, jako C++ ne.
    Poučení pro příště: překládat s -Wall

    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.