abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:00 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 19:55 | IT novinky

    Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.

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

    Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | Zajímavý software

    Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.

    Ladislav Hagara | Komentářů: 3
    včera 12:33 | Nová verze

    Grafický editor dokumentů LyX, založený na TeXu, byl vydán ve verzi 2.4.0 shrnující změny za šest let vývoje. Novinky zahrnují podporu Unicode jako výchozí, export do ePub či DocBook 5 a velké množství vylepšení uživatelského rozhraní a prvků editoru samotného (např. rovnic, tabulek, citací).

    Fluttershy, yay! | Komentářů: 0
    včera 12:00 | Nová verze

    Byla vydána (𝕏) nová verze 7.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.

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

    Organizace Apache Software Foundation (ASF) vydala verzi 22 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.

    Ladislav Hagara | Komentářů: 0
    3.6. 17:00 | IT novinky

    Společnost AMD na veletrhu Computex 2024 představila (YouTube) mimo jiné nové série procesorů pro desktopy AMD Ryzen 9000 a notebooky AMD Ryzen AI 300.

    Ladislav Hagara | Komentářů: 0
    3.6. 16:22 | Nová verze

    OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána ve verzi 4.10.0 . Přehled novinek v ChangeLogu. Vypíchnout lze Wayland backend pro Linux.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Makefile statické knihovny v C a QT Creatoru

    20.9.2015 11:13 | Přečteno: 1150× | 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.