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:22 | Zajímavý projekt

    Max Leiter v roce 2019 zkusil zprovoznit X server na iPadu (iOS). Nyní se k tématu vrátil a s pomocí LLM a balíčkovacích nástrojů Procursus rozběhl desktop s X11 i Waylandem. Jeho balíčky jsou dostupné v repozitáři xiOS.

    |🇵🇸 | Komentářů: 6
    včera 13:33 | IT novinky

    Společnost Google Cloud dnes oznámila, že její infrastruktura a služby byly oficiálně zařazeny do Katalogu cloud computingu vedeného Digitální a informační agenturou (DIA). Tato certifikace potvrzuje, že infrastruktura a služby Google Cloud splňují přísné bezpečnostní a regulační požadavky České republiky pro provoz cloudových služeb ve veřejném sektoru.

    Ladislav Hagara | Komentářů: 4
    včera 13:11 | IT novinky

    Vůbec poprvé v historii se stát při testování digitálních služeb obrací na širokou veřejnost. Digitální a informační agentura (DIA) a Ministerstvo vnitra zvou občany k zapojení do zátěžového testu eDokladů, které od loňského podzimu prošly optimalizací aplikace a posílením infrastruktury. Test proběhne 13. srpna ve 13:00 a pro jeho úspěch bude potřeba zapojení několika desítek tisíc občanů. Zapojení do testu je zcela dobrovolné a úkol

    … více »
    Ladislav Hagara | Komentářů: 21
    včera 13:00 | Nová verze

    FireDragon je webový prohlížeč, doposud založený na Floorpu, jednom z forků Firefoxu s větším důrazem na ochranu soukromí a přizpůsobení uživatelského rozhraní. Spravuje ho člen komunity distribuce Garuda Linux. Nové vydání verze 13 opouští Floorp a přechází přímo na Firefox s patchi z LibreWolfu a vlastními úpravami. Dostupný je také na Flathubu.

    |🇵🇸 | Komentářů: 0
    včera 05:44 | Zajímavý software

    picogame (GitHub) je malý 2D herní engine pro mikrokontroléry jako RP2040, čip uvnitř kapesní konzole Picopad. Hru napíšeš v Pythonu a vyzkoušíš ji v prohlížeči nebo desktopovém simulátoru. Až bude hotová, zkopíruješ ji na podporovanou desku. Na začátku nepotřebuješ C, sestavení firmwaru ani hardware.

    Ladislav Hagara | Komentářů: 1
    29.7. 19:22 | Nová verze

    Multiplatformní prohlížeč elektronických knih KOReader byl vydán ve verzi 2026.07 "Sailing Walrus". U PDF souborů s SMask lze vyčistit pozadí. Přibyla podpora Kobo v5 nebo základní podpora OPDS 2.0.

    Ladislav Hagara | Komentářů: 0
    29.7. 14:22 | Komunita

    Společnost Valve sponzoruje a společnost Collabora portuje RADV (open source Vulkan ovladač pro AMD GPU z projektu Mesa) na Windows.

    Ladislav Hagara | Komentářů: 0
    28.7. 20:44 | Zajímavý projekt

    Starling (GitHub) je desktopové prostředí vytvořeno umělou inteligencí (s dohledem jednoho vývojáře během šesti měsíců).

    Ladislav Hagara | Komentářů: 37
    28.7. 14:22 | IT novinky

    Dne 30. června 2026 byla završena fyzická realizace projektu Czech National Quantum Communication Infrastructure (CZQCI), tedy České národní kvantové komunikační infrastruktury. Projekt byl realizován od 1. března 2023 a financován z Národního plánu obnovy částkou 121,6 milionu Kč. Cílem podpořeného projektu bylo vybudovat základy národní kvantové komunikační infrastruktury a ověřit možnosti jejího praktického využití. Mezi

    … více »
    Ladislav Hagara | Komentářů: 3
    28.7. 14:11 | IT novinky

    Město Šumperk se stalo terčem kybernetického útoku, chod úřadu je omezen. Zjišťuje se, jestli unikla nějaká data. Cílem hackerů byla městská datová síť. První útoky zaznamenali odborníci na informační technologie již v pondělí večer, závady se ale plně projevily až dnes ráno. Město událost nahlásilo Národnímu úřadu pro kybernetickou a informační bezpečnost (NUKIB).

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (18%)
     (30%)
     (5%)
     (6%)
     (2%)
     (15%)
     (23%)
    Celkem 2286 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Potomek tridy s implementaci v .so knihovne

    9.4.2013 18:11 luky
    Potomek tridy s implementaci v .so knihovne
    Přečteno: 426×
    Potrebuju napsat potomka ke cryptopp::CascadableOStreamBuffer, ktereho potom pouziji v retezci buferu v cryptopp, mam ale problem s linkovanim - umre to na:
    undefined reference to `typeinfo for cryptopp::CascadableOStreamBuffer'
    Problem umim vyresit tak, ze smazu z Makefile cryptopp "-no-rtti" prepinac v CXXFLAGS, nicmene to zpusobi, ze libcrypto++ zacne zaviset na dalsich sdilenych knihovnach a musim rucne vynutit instance nekterych sablon. Zajimalo by me, jestli jde nejak presvedcit g++ aby vygenerovalo rtti jeste jednou v nejakem mem modulu pripadne jine reseni, ktere nevyzaduje zasah do te sdilene knihovny. THX

    Odpovědi

    9.4.2013 19:35 luky
    Rozbalit Rozbalit vše Re: Potomek tridy s implementaci v .so knihovne
    Tak jsem si to vyresil a kompiluju i svuj kod s -no-rtti, takze nezavisi na rtti nadrazenych trid.
    9.4.2013 22:40 Sten
    Rozbalit Rozbalit vše Re: Potomek tridy s implementaci v .so knihovne
    Pokud nepotřebujete dynamic_cast, pak nepotřebujete RTTI (GCC generuje RTTI pro výjimky i s -fno-rtti).

    Pokud ale RTTI (dynamic_cast) potřebujete, pak to lze řešit dvěma způsoby:
    1. použít tu instanci jako výjimku a donutit tak GCC vygenerovat patřičné RTTI (nebude fungovat spolehlivě, pokud to nebude výjimka od stvoření!)
      try {
          nejakaFunkcePouzivajiciThrowMistoReturn();
      } catch (TridaProPretypovani &instance) {
          // Jako když se povede dynamic_cast
      } catch (...) {
          // Jako když dynamic_cast selže
      }
      
    2. vygenerovat RTTI definováním nějaké metody z té třídy, typicky virtuálního destruktoru. Volat skutečnou implementaci ale potom vyžaduje šachování s linkerem:
      Class::~Class()
      {
          static void(Class::*orig)() = reinterpret_cast<void(Class::*)()>(dlsym("_ZN5ClassD2Ev", RTLD_NEXT));
          this->*orig();
      }
      
    10.4.2013 10:15 luky
    Rozbalit Rozbalit vše Re: Potomek tridy s implementaci v .so knihovne
    Muj kod je jen jednoduche lepitko mezi transformacnimi funkcemi v C a knihovnou cryptopp, nikde v mem kodu ani v knihovne se dynamic_cast nepouziva, ani se objekt nevyhazuje jako vyjimka, takze me prekvapilo, ze tam to RTTI vubec je a zacal jsem si myslet, ze je potreba pro volani virtualnich metod (a to jsem si byl jisty, ze se pred par lety na to pouzival symbol vtable).

    Muj problem byl v tom, ze RTTI gcc generuje pro vsechny objekty (pokud nepouzijete -no-rtti) a kdyz nemate RTTI pro predka, tak se RTTI potomka neslinkuje. Ja jsem cekal, ze kdyz se to RTTI nepouziva, tak ho proste linker zahodi.

    Kazdopadne diky moc za info, jak to vyresit i v pripade potreby toho RTTI.
    10.4.2013 10:19 Ivan
    Rozbalit Rozbalit vše Re: Potomek tridy s implementaci v .so knihovne
    No asi jsem mimo, ale i kdyz je predek uplne abstrakni tak by mel mit virtualni destruktor. Kdyz uz mas alespon jednu virtualni metodu implementovanou tak mas i RTTI pro predka.

    10.4.2013 10:25 Ivan
    Rozbalit Rozbalit vše Re: Potomek tridy s implementaci v .so knihovne
    Pokud napises:
    class AbsInterface {
     ...
     virtual ~AbsInterface {};
     ...
    };
    
    Tak se pro destruktor vygeneruje RTTI a zaroven bude kod destruktoru weak symbol. Tzn ten symbol bude jak v hlavni aplikaci a tak i v .so knihovne a zadnou kolizi to nezpusobi.

    10.4.2013 13:37 Sten
    Rozbalit Rozbalit vše Re: Potomek tridy s implementaci v .so knihovne
    Oboje jsou tabulky ukazatelů, ale jsou trochu odlišné. vtable ukazuje na RTTI dané třídy a na jednotlivé virtuální metody, RTTI ukazuje na RTTI předků dané třídy, jméno třídy a umí down-casting (oddělené to je kvůli vícenásobné a virtuální dědičnosti, kdy je ukazatelů na stejné RTTI v jedné vtable více). Protože je ukazatel na RTTI uložen ve vtable, tak linker nepozná, že se to může vyhodit.
    little.owl avatar 10.4.2013 23:57 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Potomek tridy s implementaci v .so knihovne
    Ten druhy bod je neskutecna cunarna.
    A former Red Hat freeloader.
    10.4.2013 10:09 Ivan
    Rozbalit Rozbalit vše Re: Potomek tridy s implementaci v .so knihovne
    Na tohle pouzivam abstraktni tovarnu na objeky z knihovny Loki. http://codewrangler.home.comcast.net/~codewrangler/utility/factory.h Kod je na Linuxu nutne prelozit s optionen -rdynamic. Implementace tridy je v knihovne. Nepotrebuju zadny dlsym, ani manglovani jmen, kazda knihovna ma staticky inicializator a ten zajisti vse potrebne. Nova instance tridy se vyrobi takhle:
    Lexer *l = LexerFactTwoParmSing::Instance().create("OracleGuiLexer", filename);
    
    "OracleGuiLexer" - je "jmeno" tridy s implementaci(pod kterym byla zaregistrovana).
    filename je 1. parametr pro konstruktor.

    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.