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 05:33 | IT novinky

    Samsung představil headset Galaxy XR se 4K Micro-OLED displeji, procesorem Snapdragon XR2+ Gen 2, 16 GB RAM, 256 GB úložištěm, operačním systémem Android XR a Gemini AI.

    Ladislav Hagara | Komentářů: 0
    dnes 05:22 | Nová verze

    Před konferencí Next.js Conf 2025 bylo oznámeno vydání nové verze 16 open source frameworku Next.js (Wikipedie) pro psaní webových aplikací v Reactu. Přehled novinek v příspěvku na blogu.

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

    Sovereign Tech Fund oznámil finanční podporu následujících open source projektů: Scala, SDCC, Let's Encrypt, Servo, chatmail, Drupal, Fedify, openprinting, PHP, Apache Arrow, OpenSSL, R Project, Open Web Docs, conda, systemd a phpseclib.

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

    Bylo vydáno OpenBSD 7.8. S předběžnou podporou Raspberry Pi 5. Opět bez písničky.

    Ladislav Hagara | Komentářů: 0
    včera 05:44 | Nová verze Ladislav Hagara | Komentářů: 2
    včera 05:22 | Bezpečnostní upozornění

    Byly publikovány informace o kritické zranitelnosti v knihovně pro Rust async-tar a jejích forcích tokio-tar, krata-tokio-tar a astral-tokio-tar. Jedná se o zranitelnost CVE-2025-62518 s CVSS 8.1. Nálezci je pojmenovali TARmageddon.

    Ladislav Hagara | Komentářů: 3
    21.10. 23:15 | Nová verze

    AlmaLinux přinese s verzí 10.1 podporu btrfs. XFS bude stále jako výchozí filesystém, ale instalátor nabídne i btrfs. Více informací naleznete v oficiálním oznámení.

    Max | Komentářů: 2
    21.10. 22:33 | IT novinky

    Společnost OpenAI představila svůj vlastní webový prohlížeč ChatGPT Atlas. Zatím je k dispozici pouze na macOS.

    Ladislav Hagara | Komentářů: 0
    21.10. 14:33 | Nová verze

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.5 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.

    Ladislav Hagara | Komentářů: 3
    21.10. 13:55 | IT novinky

    Rodina jednodeskových počítačů Orange Pi se rozrostla (𝕏) o Orange Pi 6 Plus.

    Ladislav Hagara | Komentářů: 10
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (48%)
     (20%)
     (20%)
     (22%)
     (18%)
     (21%)
     (18%)
     (18%)
    Celkem 256 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Autoconf: cesta ke knihovnám

    21.7.2006 19:04 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
    Autoconf: cesta ke knihovnám
    Přečteno: 186×
    Dobrý den,

    chtěl bych si ujasnit, jakým způsobem programy kompilované pomocí Autotools/Automake nakládají s knihovnami.

    Mám zdrojový kód programu (určený k distribuci - tedy se skriptem configure) a progam vyžaduje nějakou knihovnu v té a té verzi. Tu v systému nemám a zkompiluji ji do adresáře /opt/libs/knihovna (vytvoří se obvykle podadresáře include a lib).

    Nyní bych rád sdělil tomuto šílenému sestavovacímu systému, kde má knihovnu hledat. Zkusil jsem toto:

    ./configure --prefix=/opt/program --libdir=/opt/libs/knihovna/lib --includedir=/opt/libs/knihovna/include/

    Bohužel to mi nepomůže. Při vlastním sestavení totiž nejsou kompilátoru přidány správné atributy (-I).

    Dělám něco špatně, nebo má autor špatně vytvořené sestavovací skripty? Jaký je správný (obecný) způsob?

    ps - a což teprve když v systému knihovna je, ale ve staré verzi (a v /opt nebo /usr/local mám novější). mně se to jeví jako neřešitelný problém (pomocí configure)

    Odpovědi

    21.7.2006 19:43 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Autoconf: cesta ke knihovnám
    1. Instalovat knihovnu určenou pro použití v systému do /opt/libs/jméno je nesmysl. Jakž takž by to mohlo fungovat, pokud byste používal jen staticky linkovanou knihovnu, při překladu přidal odpovídající '-I' a při linkování '-L'. Jakmile půjde o dynamickou knihovnu, loader ji nenajde, ledaže byste mu cestu k ní připsal do /etc/ld.co.conf

    2. Přepínače --libdir a --includedir říkají configure skriptu, kam bude příslušný program instalovat své knihovny resp. hlavičkové soubory (bude-li nějaké instalovat). Ne kde bude hledat knihovny při svém překladu resp. linkování.

    3. Pokud program potřebuje nějakou knihovnu a ta není instalována v obvyklých adresářích, budou potřeba příslušné přepínače '-I' nebo '-L'. Záleží na tom, jak je to v configure.in vyřešeno. Nejjednodušší je použití pkg-config prostřednictvím makra PKG_CHECK_MODULES(), ale to vyžaduje, aby byl nainstalovaný pkg-config. Některé skripty to řeší tak, že zavedou nějaký --with-jméno parametr, kterým je potřeba jim sdělit, kde mají knihovnu hledat.

    22.7.2006 10:47 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
    Rozbalit Rozbalit vše Re: Autoconf: cesta ke knihovnám
    No dobrá, jenže já knihovnu nechci instalovat do /usr/local, protože se jedná o dejme tomu vývojovou verzi knihovny, kterou mám již v systému. Pokud programu sdělím, kde má dynamickou knihovnu hledat, tak to zas až takový nesmysl není, že ano.

    Ty přepínače -I a -L se předávají přímo configure skriptu? Zkusím tedy projít manuálovou stránku programu pkg-config. Díky.
    22.7.2006 11:22 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Autoconf: cesta ke knihovnám
    Dynamická knihovna je dynamická právě tím, že se linkuje až za běhu programu (obvykle při jeho spuštění). Takže byste to systému musel sdělit nejen při linkování, ale především při spouštění toho programu.
    22.7.2006 18:15 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Autoconf: cesta ke knihovnám
    Hlavně jsem ale z dotazu nepochopil, jestli jde o váš projekt, ke kterému si píšete configure.in, nebo se snažíte přeložit něco cizího.

    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.