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

    Byla vydána (Mastodon, 𝕏) první RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.

    Ladislav Hagara | Komentářů: 0
    včera 23:22 | Komunita

    Eugen Rochko, zakladatel Mastodonu, tj. sociální sítě, která není na prodej, oznámil, že po téměř 10 letech odstupuje z pozice CEO a převádí vlastnictví ochranné známky a dalších aktiv na neziskovou organizaci Mastodon.

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

    Byla vydána nová major verze 5.0 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v obsáhlých poznámkách k vydání. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 14:00 | Upozornění

    Cloudflare, tj. společnost poskytující "cloudové služby, které zajišťují bezpečnost, výkon a spolehlivost internetových aplikací", má výpadek.

    Ladislav Hagara | Komentářů: 7
    včera 04:22 | Pozvánky

    Letos se uskuteční již 11. ročník soutěže v programování Kasiopea. Tato soutěž, (primárně) pro středoškoláky, nabízí skvělou příležitost procvičit logické myšlení a dozvědět se něco nového ze světa algoritmů – a to nejen pro zkušené programátory, ale i pro úplné začátečníky. Domácí kolo proběhne online od 22. 11. do 7. 12. 2025 a skládá se z 9 zajímavých úloh různé obtížnosti. Na výběru programovacího jazyka přitom nezáleží – úlohy jsou

    … více »
    SoutezKasiopea | Komentářů: 1
    včera 04:11 | Nová verze

    Byla vydána nová verze 2.52.0 distribuovaného systému správy verzí Git. Přispělo 94 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    17.11. 18:00 | Nová verze

    VKD3D-Proton byl vydán ve verzi 3.0. Jedná se fork knihovny vkd3d z projektu Wine pro Proton. Knihovna slouží pro překlad volání Direct3D 12 na Vulkan. V přehledu novinek je vypíchnuta podpora AMD FSR 4 (AMD FidelityFX Super Resolution 4).

    Ladislav Hagara | Komentářů: 0
    17.11. 03:11 | Nová verze

    Poštovní klient Thunderbird byl vydán v nové verzi 145.0. Podporuje DNS přes HTTPS nebo Microsoft Exchange skrze Exchange Web Services. Ukončena byla podpora 32bitového Thunderbirdu pro Linux.

    Ladislav Hagara | Komentářů: 2
    17.11. 02:33 | IT novinky

    U příležitosti státního svátku 17. listopadu probíhá na Steamu i GOG.com již šestý ročník Czech & Slovak Games Week aneb týdenní oslava a také slevová akce českých a slovenských počítačových her.

    Ladislav Hagara | Komentářů: 0
    16.11. 19:33 | Nová verze

    Byla vydána nová verze 9.19 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček BirdNET-Go, tj. AI řešení pro nepřetržité monitorování a identifikaci ptáků.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (46%)
     (19%)
     (18%)
     (23%)
     (15%)
     (23%)
     (16%)
     (16%)
    Celkem 367 hlasů
     Komentářů: 16, poslední 12.11. 18:21
    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: 607×
    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.