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

    Byla vydána nová verze 10.1 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íchnuta je podpora NanoPi Zero2 a balíček WhoDB.

    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | Komunita

    Konference Otvorený softvér vo vzdelávaní, výskume a v IT riešeniach OSSConf 2026 proběhne od 1. do 3. července 2026 na Žilinské univerzita v Žilině: "Cieľom našej konferencie je poskytnúť priestor pre informovanie o novinkách vo vývoji otvoreného softvéru a otvorených technológií, o možnostiach využitia týchto nástrojov vo vede a vzdelávaní a taktiež poskytnúť priestor pre neformálne priateľské stretnutie užívateľov a priaznivcov

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Pozvánky

    Korespondenční seminář z programování (KSP) pražského Matfyzu pořádá i letos jarní soustředění pro začátečníky. Zváni jsou všichni středoškoláci a starší základoškoláci, kteří se chtějí naučit programovat, lépe uvažovat o informatických úlohách a poznat nové podobně smýšlející kamarády. Úplným začátečníkům bude určen kurz základů programování a kurz základních algoritmických dovedností, pokročilejším nabídneme různorodé

    … více »
    skywalqer | Komentářů: 0
    včera 04:11 | Komunita

    Fedora je od 10. února dostupná v Sýrii. Sýrie vypadla ze seznamu embargovaných zemí a Fedora Infrastructure Team mohl odblokovat syrské IP adresy.

    Ladislav Hagara | Komentářů: 21
    včera 03:44 | Zajímavý projekt

    Ministerstvo zahraničí Spojených států amerických vyvíjí online portál Freedom.gov, který umožní nejenom uživatelům v Evropě přístup k obsahu blokovanému jejich vládami. Portál bude patrně obsahovat VPN funkci maskující uživatelský provoz tak, aby se jevil jako pocházející z USA. Projekt měl být původně představen již na letošní Mnichovské bezpečnostní konferenci, ale jeho spuštění bylo odloženo.

    NUKE GAZA! 🎆 | Komentářů: 21
    včera 03:33 | Komunita

    Byla vydána pro lidi zdarma ke stažení kniha The Book of Remind věnovaná sofistikovanému kalendáři a připomínači Remind.

    Ladislav Hagara | Komentářů: 1
    21.2. 23:55 | Nová verze

    Grafický editor dokumentů LyX, založený na TeXu, byl vydán ve verzi 2.5.0. Oznámení připomíná 30. výročí vzniku projektu. Novinky zahrnují mj. vylepšení referencí nebo použití barev napříč aplikací, od rozhraní editoru po výstupní dokument.

    |🇵🇸 | Komentářů: 0
    21.2. 15:00 | Komunita

    F-Droid bannerem na svých stránkách a také v aplikacích F-Droid a F-Droid Basic upozorňuje na iniciativu Keep Android Open. Od září 2026 bude Android vyžadovat, aby všechny aplikace byly registrovány ověřenými vývojáři, aby mohly být nainstalovány na certifikovaných zařízeních Android. To ohrožuje alternativní obchody s aplikacemi jako F-Droid a možnost instalace aplikací mimo oficiální obchod (sideloading).

    Ladislav Hagara | Komentářů: 27
    20.2. 16:33 | Nová verze

    Svobodná historická realtimová strategie 0 A.D. (Wikipedie) byla vydána ve verzi 28 (0.28.0). Její kódový název je Boiorix. Představení novinek v poznámkách k vydání. Ke stažení také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 2
    20.2. 04:44 | Nová verze

    Multimediální server a user space API PipeWire (Wikipedie) poskytující PulseAudio, JACK, ALSA a GStreamer rozhraní byl vydán ve verzi 1.6.0 (Bluesky). Přehled novinek na GitLabu.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (6%)
     (0%)
     (11%)
     (27%)
     (2%)
     (5%)
     (1%)
     (12%)
     (26%)
    Celkem 941 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Makefile statické knihovny v C a QT Creatoru

    20.9.2015 11:13 | Přečteno: 1223× | Programování | Výběrový blog | poslední úprava: 20.9.2015 11:13

    Až jednou zase budu potřebovat jednoduchou knihovnu v C (ne ++) v QT projektu a zapomenu jak na to...

    Adresářová struktura

    software/
    ├── libdfmt
    │   ├── include
    │   │   └── devices.h
    │   ├── libdfmt.a
    │   ├── libdfmt.h
    │   ├── obj
    │   │   ├── devices.o
    │   │   └── libdfmt.o
    │   └── src
    │       ├── devices.c
    │       ├── libdfmt.c
    │       ├── libdfmt.c.autosave
    │       └── makefile
    ├── libdfmt.config
    ├── libdfmt.creator
    ├── libdfmt.creator.user
    ├── libdfmt.files
    ├── libdfmt.includes
    ├── Makefile
    ├── software.pro
    └── software.pro.user
    

    Knihovna libdfmt má .c soubory v src/ .o v obj/ a hlavičky include/ Hlavička s exportovanými funkcemi je a knihovna je v kořeni (složka libdfmt)

    Makefile

    Makefile jsme se snažil v rámci svých schopností udělat univerzální. jednoduše předpokládá že každému .c v src odpovídá .o v obj. Každý jeden objekt má v prerekvizitách všechny hlavičkové soubory. To sice není ideální, ale vzhledem k rozsáhlosti projektu je to jedno.

    IDIR =../include
    ODIR=../obj
    NAME=libdfmt
    CC=gcc
    CFLAGS=-Wall -Werror -I$(IDIR) -I/usr/include/libusb-1.0/
    LIBS= -lusb-1.0
    DEPS = ../libdfmt.h $(wildcard $(IDIR)/*.h)
    
    OBJ = $(patsubst %.c,%.o,$(wildcard *.c))
    
    VPATH = $(ODIR) ../
    
    .PHONY: all
    all: static
    
    %.o: %.c $(DEPS)
            mkdir -p $(ODIR)
            $(CC) -c -o $(ODIR)/$@ $< $(CFLAGS)
    
    .PHONY: static
    static: $(OBJ)
            ar rsc ../$(NAME).a $(patsubst %, $(ODIR)/%, $(OBJ))
    
    .PHONY: clean
    clean:
            rm -vf $(ODIR)/*.o *~ core $(INCDIR)/*~ $(NAME).a
    

    (Odsazování je nutné provádět pomocí tabulátorů nikoliv mezer)

    QTcreator

    V případě importu projektu s vlastním makefilem je zbytečné vytvářet multiprojekt. V nápovědě k importování projektu se píše, že se creator použije pouze jako editor a kluci vývojářští se toho drží ve smyslu, že takto nevznikne plnohodnotný projekt, který se dá použít jako závislost k jinému (dá se obejít). Nicméně do adresáře s projektem se vám nasáčkuje pár souborů. Proto jsem při importu vybral složku s projektem o úroveň níž.

    Soubory:

    Aby fungovala buildovací tlačítka creatoru je třeba změnit build directory u projektu na cestu do složky s makefilem (src).Hlavně to upravit u správného projektu.

    Pokud současně píšu jak knihovnu tak další projekt, který ji využívá, je dobré v nastavení druhého projektu přidat jako první bod kompilace volání make knihovny.


    Kritika (zejména konstruktivní) vítána.
    Právo na hrubky, překlepy a absenci čárek vyhrazeno.        

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    20.9.2015 11:45 Mergle
    Rozbalit Rozbalit vše Re: Makefile statické knihovny v C a QT Creatoru
    To je vsechno? To je cely slavny problem? Takoveho programatora tak dostat, ten by letel na hodinu...
    FoxVK avatar 20.9.2015 12:02 FoxVK | skóre: 1 | blog: Nora linuxáka
    Rozbalit Rozbalit vše Re: Makefile statické knihovny v C a QT Creatoru
    A co že ti vlastně vadí ? :D
    20.9.2015 17:32 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Makefile statické knihovny v C a QT Creatoru
    Osobně bych nasadil CMake a nebabral se s Makefile...
    vlastikroot avatar 20.9.2015 18:32 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
    Rozbalit Rozbalit vše Re: Makefile statické knihovny v C a QT Creatoru
    V QtCreatoru bych spis ocekaval qmake.
    We will destroys the Christian's legion ... and the cross, will be inverted
    FoxVK avatar 20.9.2015 19:22 FoxVK | skóre: 1 | blog: Nora linuxáka
    Rozbalit Rozbalit vše Re: Makefile statické knihovny v C a QT Creatoru
    Tak určitě. Ale tady je cílem udělat knihovnu pro ovládání USB FM tuneru a k tomu demonstrační gui. qmake jsem do ní zatahoval nechtěl.
    20.9.2015 20:09 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Makefile statické knihovny v C a QT Creatoru
    No ten cmake by nahradil jak Makefile tak qmake, ale zas na druhou stranu je pravda, že 1) taky má svoje nevýhody a 2) je to závislost (ačkoli to jsou make a qmake taky).
    Václav 20.9.2015 20:38 Václav "Darm" Novák | skóre: 26 | blog: Darmovy_kecy | Bechyně / Praha
    Rozbalit Rozbalit vše Re: Makefile statické knihovny v C a QT Creatoru
    Na stranu druhou, pokud už někdo má ve zvyku kompilovat si na počítači balíčky, pravděpodobně už nejen make, ale i cmake a qmake má. Naopak, make vídám čím dál tím méně.
    Cross my heart and hope to fly, stick a cupcake in my eye!
    21.9.2015 00:25 chrono
    Rozbalit Rozbalit vše Re: Makefile statické knihovny v C a QT Creatoru
    Ak má niekto Cmake alebo qmake, tak má, aspoň v Linuxe, na 99% aj make.
    Václav 21.9.2015 06:39 Václav "Darm" Novák | skóre: 26 | blog: Darmovy_kecy | Bechyně / Praha
    Rozbalit Rozbalit vše Re: Makefile statické knihovny v C a QT Creatoru
    Myslel jsem tím čistý make využitý v projektu, poslední dobou je to většinou buď qmake nebo cmake.
    Cross my heart and hope to fly, stick a cupcake in my eye!
    20.9.2015 20:42 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Makefile statické knihovny v C a QT Creatoru
    Pokud současně píšu jak knihovnu tak další projekt, který ji využívá, je dobré v nastavení druhého projektu přidat jako první bod kompilace volání make knihovny.

    Především je dobré knihovnu a další projekt zcela oddělit a vydávat a kompilovat samostatně. Pak není třeba řešit, že v jednom chcete Make a v druhém něco klikacího.

    16.1.2017 09:57 Hanna
    Rozbalit Rozbalit vše Re: Makefile statické knihovny v C a QT Creatoru
    Very nice post. I just stumbled upon your blog and wanted to say that I have really enjoyed browsing your blog posts 192.168.1.1 192.168.1.1 192.168.1.1 192.168.1.1

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.