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 13:22 | IT novinky

    Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.

    Ladislav Hagara | Komentářů: 1
    dnes 04:55 | Nová verze

    Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 1
    dnes 00:33 | Komunita

    Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.

    Ladislav Hagara | Komentářů: 20
    včera 23:22 | Pozvánky

    Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou

    … více »
    bkralik | Komentářů: 0
    včera 22:33 | IT novinky

    Dle plánu dnes končí služba Skype. Uživatelé mohou pokračovat v Microsoft Teams.

    Ladislav Hagara | Komentářů: 1
    včera 21:44 | IT novinky

    Český statistický úřad rozšiřuje Statistický geoportál o Datový portál GIS s otevřenými geografickými daty. Ten umožňuje stahování datových sad podle potřeb uživatelů i jejich prohlížení v mapě a přináší nové možnosti v oblasti analýzy a využití statistických dat.

    Ladislav Hagara | Komentářů: 1
    včera 12:33 | Zajímavý projekt

    Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.

    Ladislav Hagara | Komentářů: 1
    včera 12:11 | Pozvánky

    Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.

    Ladislav Hagara | Komentářů: 0
    4.5. 21:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    4.5. 14:22 | IT novinky

    Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.

    Ladislav Hagara | Komentářů: 33
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (2%)
     (1%)
     (1%)
     (3%)
    Celkem 534 hlasů
     Komentářů: 22, poslední včera 10:06
    Rozcestník

    Dotaz: cmake add_subdirectory

    14.12.2021 14:54 pou | skóre: 18
    cmake add_subdirectory
    Přečteno: 296×
    Dobrý den,

    vytvářím nový projekt, který ke své činnosti potřebuje externí knihovnu.

    Knihovna využívá ke generování Makefilu CMake, knihovna jde bez problému sestavit.

    Vytvořím si tedy nový projekt (hello), kde v cmaku přidám cmake z externí knihovny pomocí add_subdirectory.

    Cíl je asi jasný - nejprve zkompilovat knihovnu potom program hello.

    Po přidání externí knihovny se mi však nedaří projekt zkonfigurovat, cmake hlásí chybu že nenalezl konfigurační soubory Cmaku, které jsou umístěny v adresaři "cmake" v externí knihovně (jedná se patrně o rozšíření funkcionality cmaku - v tomto adresáři jsou soubory např. FindUSB1.cmake, FindConfuse.cmake atd.). Pokud adresář cmake, přesunu z adresáře externí knihovny výše (do projektu hello), chyba zmizí a objeví se další....

    Otázka tedy zní: Jak správně přidat podřízený projekt do CMaku, tak aby cmake načítal skripty ze správného adresáře?

    Ještě jednou připomínám, že pokud zkusím cmake přímo v adresáři s externí knihovnou vše bez problému jde.

    Odpovědi

    14.12.2021 18:44 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: cmake add_subdirectory
    Povedzme, že máš takúto štruktúru
    hello/main.c
    hello/CMakeLists.txt
    hello/kniznica/kniznica.c
    hello/kniznica/CMakeLists.txt
    
    hello/kniznica/CMakeLists.txt obsahuje
    add_library(kniznica SHARED kniznica.c)
    hello/CMakeLists.txt obsahuje
    add_subdirectory(kniznica)
    a mal by tiež obsahovať
    add_executable(hello main.c)
    target_link_libraries(hello PRIVATE kniznica)
    Build potom urobím:
    rm -rf build
    mkdir build
    cd build
    cmake ..
    make
    Kvoli target_link_libraries() cmake bude vedieť, že na zbuildovanie "hello" potrebuje "kniznica" a keďže existuje target s menom kniznica, tak najprv zbuilduje ten.
    14.12.2021 19:27 pou | skóre: 18
    Rozbalit Rozbalit vše Re: cmake add_subdirectory
    Děkuji za reakci, ano struktura je jak píšete,

    jen v té knihovně je podadresář cmake ve kterem jsou různé skrypty které, pokud zavolám cmake na muj hello (stejně jak píšete) vypíše chybu, že nemůže najít právě ty skripty.

    struktura cca:
    hello/main.c
    hello/CMakeLists.txt
    hello/kniznica/kniznica.c
    hello/kniznica/CMakeLists.txt
    hello/kniznica/CMakeOptions.txt
    hello/kniznica/cmake/FindConfuse.cmake
    hello/kniznica/cmake/...
    
    jinak jde o tuto knihovnu, kdyby to bylo důležité
    14.12.2021 19:58 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: cmake add_subdirectory
    Podľa mňa tie súbory v adresári cmake sú súbory, ktoré cmake môže použiť na to, aby zafungovalo find_package().

    Pokiaľ to ftdl ponúka tvoja distribúcia, tak by som dal do OS nainštalovať to. Tým by sa malo zariadiť, že ku knižnici sa nainštalujú aj súbory potrebné na to, aby tú knižnicu vedel nájsť cmake pri kompilovaní programov, ktoré tú knižniciu potrebujú.

    Ak ftdl tvoja distribúcia neponúka, tak by som som skúsil ftdl skompilovať samostatne - asi s
    cmake -DCMAKE_INSTALL_PREFIX=/usr ..; sudo make install
    14.12.2021 21:42 pou | skóre: 18
    Rozbalit Rozbalit vše Re: cmake add_subdirectory
    jak jsem psal v úvodu: Pokud zkusím cmake přímo v adresáři s externí knihovnou vše bez problému jde.

    Potom samozřejmě můžu svůj hello program linkovat a vše funguje.

    Chtěl jsem ale mít vše pohromadě - tedy kompilaci knihovny a programu, bez nutnosti instalace (make install) knihovny do systému.

    Ano můžu zkompilovat knihovnu do nějakého adresaře a potom kompilovat program s přidáním tohoto adresaře do linkeru,,,, ale jaksi to není to co jsem chtěl -> jeden cmake, který zkompiluje jak knihovnu tak program, pak třeba použiji jinou verzi knihovny a znovu....

    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.