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 22:55 | Nová verze

    Byla vydána Java 27 / JDK 27. Nových vlastností (JEP - JDK Enhancement Proposal) je 9.

    Ladislav Hagara | Komentářů: 0
    včera 17:44 | Nová verze

    Byl vydán Mozilla Firefox 156.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vestavěný prohlížeč PDF se nyní spouští o 45 % rychleji. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 156 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 14:11 | Nová verze

    Článek na Raspberry Pi představuje nový vzhled desktopu operačního systému Raspberry Pi OS v aktuálním vydání 2026-09-15.

    Ladislav Hagara | Komentářů: 1
    včera 14:00 | Bezpečnostní upozornění

    Nové verze Roundcube Webmailu 1.6.19 a 1.7.4 řeší několik zranitelností.

    vencour | Komentářů: 0
    včera 11:44 | Zajímavý projekt

    Na Kickstarteru běží kampaň na podporu hloupého (jenom volání a SMS) tlačítkového DIY telefonu MAKERphone 2.0 od společnosti CircuitMess postaveného na ESP32-S3 a volitelně také s hodinkami MAKERband. S možností psaní vlastních aplikací. S volitelnými HW rozšiřujícími moduly.

    Ladislav Hagara | Komentářů: 2
    včera 03:33 | Nová verze

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

    Ladislav Hagara | Komentářů: 0
    včera 02:22 | Nová verze

    OpenRGB (GitLab) dospěl do verze 1.0 (YouTube). OpenRGB (dříve OpenAuraSDK) je svobodný multiplatformní software umožňující nastavení podsvícení celé řady různých „herních“ komponent a periferií.

    Ladislav Hagara | Komentářů: 0
    14.9. 21:00 | IT novinky

    Dnes startuje prodej headsetu Steam Frame. Počínaje dneškem se tedy můžete zapsat na seznam pro jeden z následujících modelů: Steam Frame 256 GB za 1 049 EUR a Steam Frame 1 TB za 1 279 EUR.

    Ladislav Hagara | Komentářů: 0
    14.9. 17:44 | Bezpečnostní upozornění

    Vládní CERT upozorňuje na kritickou zranitelnost v GitLab Community Edition (CE) a Enterprise Edition (EE). Zranitelnost CVE-2026-85706 typu path traversal v Repository Commits API dosahuje skóre CVSS 10.0. Kvůli nedostatečnému omezení cest a chybějícímu vynucení autentizace může za určitých podmínek neautentizovaný útočník číst libovolné soubory ze serveru GitLab, a získat tak přístup k citlivým datům a konfiguraci instance.

    Ladislav Hagara | Komentářů: 0
    14.9. 12:00 | Zajímavý projekt

    Linux může běžet nativně na ESP32-S3 – bez emulace a rovnou s 9,7″ e-paperem.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2673 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: [C] a programování s dynamickými knihovnami

    23.11.2021 20:35 MilanC | skóre: 16
    [C] a programování s dynamickými knihovnami
    Přečteno: 819×
    Ahoj,

    mám takový problém a asi úplně nechápu, jak je to správně.

    Vykompiloval jsem si cross kompilací dynamickou knihovnu libcurl.so (na linuxu). Tato knihovna závisí na libssl a libcrypto z OpenSSL. Tyto jsem si vypřekládal jako první a curlu při kompilaci řekl, že chci podporu ssl (--with-ssl).

    Potud vše OK. Vznikla mi i binárka curl, která se správně odvolává na libcrypto.so a libssl.so, SSL v ní funguje. A je znatelně menší a ldd ukazuje závislost na obou zmíněných knihovnách, takže to by mělo být OK.

    Nyní se snažím použít libcurl ve svém Cčkovém projektu. Takže mám v kódu include curl.h, a v Makefile -lcurl a cestu ke knihovně libcurl.so přes -L + cestu k hlavičkovým souborům přes -I.

    Jakmile do Makefile mého programu přidám -lcurl, začne mi to při překladu řvát:
    /home/milanc/rtl819x-SDK-v3.4.14b-full-package/rtl819x/toolchain/msdk-4.8.5-mips-EL-3.10-u0.9.33-m32ut-180418/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: warning: libssl.so.1.0.0, needed by /home/milanc/rtl819x-SDK-v3.4.14b-full-package/rtl819x/users/curl-7.79.1/lib/.libs/libcurl.so, not found (try using -rpath or -rpath-link)
    /home/milanc/rtl819x-SDK-v3.4.14b-full-package/rtl819x/toolchain/msdk-4.8.5-mips-EL-3.10-u0.9.33-m32ut-180418/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: warning: libcrypto.so.1.0.0, needed by /home/milanc/rtl819x-SDK-v3.4.14b-full-package/rtl819x/users/curl-7.79.1/lib/.libs/libcurl.so, not found (try using -rpath or -rpath-link)
    /home/milanc/rtl819x-SDK-v3.4.14b-full-package/rtl819x/users/curl-7.79.1/lib/.libs/libcurl.so: undefined reference to `RAND_load_file'
    /home/milanc/rtl819x-SDK-v3.4.14b-full-package/rtl819x/users/curl-7.79.1/lib/.libs/libcurl.so: undefined reference to `EVP_DigestInit'
    /home/milanc/rtl819x-SDK-v3.4.14b-full-package/rtl819x/users/curl-7.79.1/lib/.libs/libcurl.so: undefined reference to `UI_method_set_closer'
    /home/milanc/rtl819x-SDK-v3.4.14b-full-package/rtl819x/users/curl-7.79.1/lib/.libs/libcurl.so: undefined reference to `BIO_new_mem_buf'
    ...
    
    A nyní jsem zmaten. Znamená to, že do mého Makefile musím cestu zase do LIBS +="-lcrypto a -lssl"? Proč? Nebo mi chybí někde nějaká cesta k těm dvěma .so z openssl? Případně kde? Ten -rpath v chybové hlášce mi nějak nic neříká. Zkusil jsem přidat na openssl (*.so) do -L, ale nepomohlo.

    Nejasnost: Proč to vlastně v této fázi chce dostupnost těch openssl knihoven? Pro mu nestačí jen dosah na libcurl.so a hlavičkové soubory curlu?

    Nevím si s tím moc rady a tak děkuji předem za případnou pomoc.

    Řešení dotazu:


    Odpovědi

    23.11.2021 21:57 X
    Rozbalit Rozbalit vše Re: [C] a programování s dynamickými knihovnami
    Tvoje libcurl.so nemuze najit libssl.so.1.0.0 a libcrypto.so.1.0.0. Mas je v systemu?
    Řešení 1× (Вherzet)
    23.11.2021 22:21 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: [C] a programování s dynamickými knihovnami
    Znamená to, že do mého Makefile musím cestu zase do LIBS +="-lcrypto a -lssl"? Proč?
    Áno. Linker vytvára výslednú spustiteľnú aplikáciu. Pretože môžeš máš v systéme viac knižníc s tými funkciami, tak chce vedieť s ktorou Tvoj program prepájaš.

    Lebo keď voláš funkciu (myslím na najnižšej vrstve), tak sa pracuje iba s adresami (skoč na adresu XY a tam zační vykonavať kód).

    Nepotrebuješ iba vtedy, ak svoju knižnicu libcurl skomplikuješ staticky.
    debian.plus@protonmail.com
    23.11.2021 23:14 MilanC | skóre: 16
    Rozbalit Rozbalit vše Re: [C] a programování s dynamickými knihovnami
    Protože je to cross kompilace, tak v systému přímo ne, reps. nejsou v systémové cestě LD_LIBRARY_PATH/LIBRARY_PATH. Jsou v jiném adresáři, který jsem ale zkusil podsouvat přes -L. No jak píšu níže, nějak jsem to už uchodil.
    Řešení 1× (MilanC (tazatel))
    23.11.2021 23:12 MilanC | skóre: 16
    Rozbalit Rozbalit vše Re: [C] a programování s dynamickými knihovnami
    Už mi to funguje. I když tedy úplně nechápu rozdíl mezi -L a -Wl,rpath=... Přidal jsem do LDLIBS -Wl,rpath={cesta ke knihovnám openssl} a tváří se to spokojeně.
    Řešení 1× (Вherzet)
    24.11.2021 18:33 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: [C] a programování s dynamickými knihovnami
    Ak chceš porozumie, tak si pozri v man gcc a odseky s názvami:
    • -Wl,option
    • -L
    A pozri si:
    debian.plus@protonmail.com

    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.