Čeština / English
Login

Návody / QDevKit - překlad ze zdrojových kódů

Autor: Zdeněk Vašíček ()

Abstrakt: Tento dokument obsahuje návod k překladu a instalaci nástrojů FITkitu ze zdrojových kódů.

Update: 2009

1. Potřebné balíčky (závislosti)

Ke kompilaci je třeba následující software, který by měl být dostupný pomocí balíčkovacího systému.

2. Možnosti získání zdrojových kódů

  1. SVN repozitář http://merlin.fit.vutbr.cz/svn/FITkitUtils/trunk.

    Synchronizace zdrojových kódů pomocí SVN Vám umožní stálý přístup k nejnovějším zdrojovým kódům.

    Stáhnout repozitář do aktuálního adresáře je možné pomocí příkazu

    svn checkout http://merlin.fit.vutbr.cz/svn/FITkitUtils/trunk .
  2. Balíčky se zdrojovými kódy

    Balíčky se zdrojovými kódy jsou aktualizovány pouze při vydání nové verze QDevKitu. Tato cesta Vám tak zaručí vždy funkční řešení.

Kompilaci ze zdrojových souborů doporučujeme pouze těm, kteří vědí co dělají. Vzhledem k rozmanitosti distribucí bude nutné zvládnout nainstalovat kompatibilní knihovny. Začátečníkům doporučujeme stáhnout image pro VirtualBOX, který již obsahuje ověřené verze potřebných vývojových nástrojů.

3. Překlad a instalace

Pro překlad se používá běžně dostupná utilita cmake, která vygeneruje Makefile se kterým je možné dále pracovat.

CMake podporuje (kromě jiných) následující volby:

  • CMAKE_BUILD_TYPE - release / debug build

    • Debug build

    • Release (použití: cmake -DCMAKE_BUILD_TYPE=Release) nebo

  • PACKAGE - typ balíčku

    • Suse vygeneruje balíček pro SuSE, OpenSuSE

    • Ubuntu vygeneruje balíček pro Ubuntu Hardy

    • Debian vygeneruje balíček pro Debian Sid (použití: cmake -DPACKAGE=Ubuntu && make package)

  • CMAKE_INSTALL_PREFIX - volba prefixu cesty, do které má být aplikace nainstalována.

Použití: cmake -DCMAKE_INSTALL_PREFIX=/usr/

3.1. Doporučené pořadí pro kompilaci

Jednotlivé utility/knihovny je zapotřebí kompilovat v následujícím pořadí (pozn: v závorce jsou uvedeny závislosti).

  1. fcmake

  2. libkitclient

  3. fkflash (využívá knihovnu libkitklient)

  4. pythonqt

  5. qdevkit (využívá fcmake, libkitclient, fkflash a pythonqt)

  6. qdevkit-plugins (vyžaduje qdevkit)

Pro překlad v prostředí Linux je možné využít skript ./build-app.sh, který pouze stačí spustit a překlad i instalace aplikací do /usr/local proběhne automaticky. Je zapotřebí mít nainstalované závislosti.

3.2. Překlad

Příklad pro kompilaci knihovny libkitclient z balíčku:

  1. přejdeme do adresáře, který obsahuje zdrojové kódy (např. libkitclient-0.2.7) a vytvoříme podadresář build, který bude obsahovat všechny produkty překladu.

    cd libkitclient-0.2.7
    mkdir build && cd build
  2. pomocí utility cmake vygenerujeme Makefile potřebný pro překlad. Utilita zajistí nalezení cest ke knihovnám a upozorní v případě problémů.

    cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/

    V případě, že budete potřebovat upravit výchozí nastavení, můžete použít volby uvedené výše. Cesty uvedené v souborech CMakeLists.txt by nemělo být nutné upravovat.

  3. pomocí utility make přeložíme projekt

    make

    Pro paralelní překlad lze použít příkaz make -j4.

3.3. Instalace

Nyní můžeme z build adresáře vygenerovat Linuxový balíček, instalátor nebo přímo instalovat.

  • Přímá instalace

    sudo make install

3.4. Odinstalace

V adresáři build utilita cmake vytvoří soubor install_manifest.txt, který obsahuje seznam nainstalovaných souborů. Pro odstranění souborů ze systému je možné použít příkaz sudo xargs rm < install_manifest.txt

Novější verze programů zvládají aplikaci odinstalovat příkazem sudo make uninstall.

4. Problémy

  • Problém s překladem pluginů do QDevKit - skončí-li vám překlad chybovou hláškou nedefinovaný interface

    .../fkflash.h:36: Error: Undefined interface

    nepodařilo se nástroji moc nalézt cestu k hlavičkovým souborům QDevKitu. Cesta je definována v souboru qdevkit-plugins/CMakeLists.txt v proměnné PLUGIN_INCLUDE. Typicky stačí nahradit následujícím řádkem:

    set(PLUGIN_INCLUDE /usr/local/include)
  • QDevkit při programování skončí vyjímkou - skončí-li vám programování kitu v QDevKitu chybovou hláškou

    Exception: No module named mspgcc

    a příkaz python -c "import mspgcc" spuštěný v shellu funguje bez problémů, zkontrolujte nastavení site-dir Pythonu ve vaší distribuci. Zejména může být problém pokud provozujete paralelně dvě verze pythonu a knihovny vyžadované utilitou fkflash se nainstalují pouze jdo jedné z nich.

    Při hledání závad může pomoci následující dvojice příkazů zadaná do python konzole QDevKitu:

    py> import sys
    py> print sys.path
  • QDevkit nelze spustit - skončí-li pokus o spuštění aplikace chybovou hláškou informující, že knihovna libqdevkit_core.so či jiná knihovna nebyla nalezena, nemáte zaregistrovánu cestu v /etc/ld.conf.so. Po přidání příslušné cesty do souboru nezapomeňte provést update pomocí příkazu ldconfig.

5. Aktualizace oprávnění udevu

Po první instalaci nezapomeňte aktualizovat oprávnění udevu, jinak může dojít k chybnému chování aplikace. Detaily lze nalézt v dokumentu Zprovoznění FITkitu v nativním prostředí Linuxu v sekci zabývající se problémy po instalaci.

Zobrazeno: 2199x Naposledy: 16.11.2017 19:35:59