Qt pe beagleboard

I-am scris acest articol, în scopul de a simplifica cunoștințele lor mici și realizări pe care am putea obține în acest moment. Prin urmare, este posibil, în articol, există unele inadvertențe. Voi fi bucuros să critici constructive și sfaturi.

Compilation Crucea

Krosskompilyatsiya--l atunci când programul pentru un sistem (țintă) este compilat în celălalt (gazdă). Este necesar în cazul în care sistemul gazdă mult mai productiv decât ținta. Acesta este exact cazul cu sistemele adâncită (încorporate). Prin urmare, programul pentru care este compilat pe un standard PC, și ei sunt deja de lucru, de exemplu, ARM.

În continuare, considerăm că terget-sistem bazat pe ARM.

Compilation nevoie Crucea pentru eco-compilator (brusc :-)). acolo compilatoarelor
-nimeni nu-și EABI -linux.

Primul este de a construi un program care va rula pe procesorul gol. Acesta generează firmware-ul ca compilator AVR-GCC, de exemplu, nu numai pentru AVR, cât și pentru ARM.

Iar al doilea este conceput pentru a construi programe care vor rula pe Linux mediu încorporat. Acesta generează fișier executabil pentru Linux.

Faptul că acestea sunt lucruri diferite, cred, este evident.

Trebuie menționat faptul că, pentru ca aceasta să funcționeze avem nevoie de o mașină cu Linux. În general, toate se poate face cu Windows, dar dacă v-ați decis deja să facă un embedded Linux, care funcționează în Linux, astfel încât să nu se angajeze kostylestroeniem pentru cârje.

Sunt folosind Ubuntu 11.04 pe o mașină virtuală VM Ware. Instalarea Ubuntu mașină virtuală și elementare și nu are nevoie de descriere.

Programul pe Qt

Să ne scrie primul nostru program de testare în Qt pentru sisteme integrate.

Acest lucru este cel mai ușor de făcut utilizând Qt-Creator. Este un IDE specializat pentru dezvoltare cu ajutorul Qt. Puteți descărca de pe qt.nokia.com. Și Ubuntu este destul de tip comanda

sudo apt-get install qtcreator

Crearea unui proiect numit testGUI. Creați un formular cu o pereche de butoane sau orice altceva. Salvați proiectul. Printre alte fișiere de proiect este cel mai important - testGUI.pro - fișierul proiect XML.

Acum trebuie să digresiune un pic și se compila Qt.

Alcătuirea Qt sub BeagleBoard / BlueShark

tar -xzf ./qt-everywhere-opensource-src-4.7.2.tar.gz
cd ./qt-everywhere-opensource-src-4.7.2/
patch -p1 <. /../qt-4.7.2-arm-beagleboard-xm-qmake.patch

compila
face
make install = rădăcină_instalare /

Rezultatul este un director / opt / qt /

Acesta are un coș de dosar - it instrumente pentru a construi aplicații pe Qt. Aceste programe sunt compilate pentru x86. Și toate bibliotecile Qt colectate de ARM.

Să ne întoarcem la programul nostru. Compilați pentru ARM
cd testgui

În primul rând ne e dor de programul nostru prin preprocesor
/ Opt / qt / bin / qmake testgui.pro

Rezultatul este un Makefile
Acum, programul poate fi compilat
face

Pentru a vă asigura că programul este compilat pentru ARM verifica acest lucru cu comanda
testgui fișier

testgui: ELF 32-bit LSB executabil, ARM, versiunea 1 (SysV), legat în mod dinamic (foloseste libs partajate)
Programul poate fi transferat la BeagleBoard / BlueShark. Doar locul de muncă nu va fi acolo. Atâta timp cât noi nu reportează în aceleași toate bibliotecile necesare.

De la transferul la Qt / opt / totul qt cu excepția recipientului de directoare, exemple și documentația (dacă este cazul). O cruce-compilator dintre noi sunt interesați în fișierul libstdc ++. Deci, care transferă în / usr / lib. De asemenea, trebuie să creați un libstdc symlink ++. Așa-> libstdc ++. So.6

Programul trebuie să fie rulat ca
./ -qws Testgui

Qt pe beagleboard

1) Ce înseamnă la fel de mult ca 3 bucăți? unul în dosare diferite, și același lucru?
2) Exact. Biblia însăși libstdc ++. So.6.0.10, și că ar fi posibil să-l actualizeze fără a reconstrui întregul software-ul și nu a redenumi Biblia în sine, ea face legătura cu titlul deja de lucru libstdc ++. So. Atât Biblia și link-ul trebuie să se afle în apropiere.
3) Du-te la directorul în care se află libstdc ++ so.6 și poruncim ca root .:
# Ln -s libstdc ++. So.6 libstdc ++ Deci.
sau
# Ln -s libstdc ++. So.6.0.10 libstdc ++ Deci.
În ciuda ceea ce ai acolo în dosarul.