Qt на beagleboard

Пиша тази статия, за да се рационализира малкия си знания и постижения, които мога да получа в момента. Поради това е възможно, в статията има някои неточности. Аз ще се радвам да конструктивна критика и съвети.

Крос Компилация

то Krosskompilyatsiya-, когато програмата за една система (цел), се съставя в другата (домакин). Това е необходимо, ако приемащата-системата много по-продуктивни, отколкото целта. Това е точно случаят с вдлъбнати (вградени) системи. Ето защо, програмата, за която е съставен на стандартен компютър, и те вече работят, например, ARM.

След това, ние считаме, че terget-система, базирана на ARM.

Крос Компилация нужда от кръстосано компилатор (внезапно :-)). има компилатори
-никой-EABI и -linux.

Първата е да се изгради една програма, която ще се проведе на голата процесор. Той генерира фърмуера като AVR-GCC компилатор, например, не само за AVR, както и за ARM.

И вторият е предназначен за изграждане на програми, които ще се движат по Linux вграден среда. Той генерира изпълним файл за Linux.

Фактът, че те са различни неща, според мен, е очевидна.

Трябва да се отбележи, че за да стане това ние се нуждаем от машина с Linux. Като цяло, всички може да се направи с Windows, но ако вече сте решили да направите вграден Linux, която работи в Linux, така че да не се ангажират kostylestroeniem за патерици.

Аз съм с Ubuntu 11.04 на виртуална машина VM Ware. Инсталиране на Ubuntu виртуална машина и елементарни и не се нуждае от описание.

Програма на Qt

Нека писмено първата ни програма за изпитване, в Qt за вградени системи.

Това се прави най-лесно с помощта на Qt-Творец. Той е специализиран IDE за развитие с помощта на Qt. Можете да го изтеглите от qt.nokia.com. И Ubuntu е достатъчно тип командата

ап-да инсталирате qtcreator

Създаване на проект на име testGUI. Създаване на формуляр с няколко копчета или нещо друго. Запазване на проекта. Сред другите проектни файлове е най-важното - testGUI.pro - XML ​​проект файл.

Сега ние трябва да се отклоня малко и се съставя Qt.

Съставяне на Qt под BeagleBoard / BlueShark

катран -xzf ./qt-everywhere-opensource-src-4.7.2.tar.gz
CD ./qt-everywhere-opensource-src-4.7.2/
закърпи -p1 <. /../qt-4.7.2-arm-beagleboard-xm-qmake.patch

събирам
правя
направи инсталирате INSTALL_ROOT = /

Резултатът е директория / изберат / QT /

Той разполага с бин папка - ИТ инструменти за изграждане на приложения върху Qt. Тези програми се изготвят за x86. И всички Qt библиотеки, събрани от ARM.

Да се ​​върнем към нашата програма. да го компилирате за ARM
CD testgui

Първо ни липсва нашата програма през Препроцесорът
/ Opt / QT / хамбар / qmake testgui.pro

Резултатът е Makefile
Сега програмата може да се компилира
правя

За да сте сигурни, че програмата се изготвя за ARM проверите това с командата
файл testgui

testgui: ELF 32-битова LSB изпълним, ARM, версия 1 (SYSV), динамично свързани (използва споделени LIBS)
Програмата може да бъде прехвърлена към BeagleBoard / BlueShark. Просто работи няма да е там. Докато ние не се пренесе върху едни и същи всички необходими библиотеки.

От Qt трансфер до / изберат / QT всичко, освен бен директория, примери и документация (ако има такива). Съпоставянето компилатор от нас се интересуват от libstdc файла ++. Така че, който прехвърли на / ЮЕсАр / ИЪ. Можете също така трябва да се създаде символна връзка libstdc ++. Т> libstdc ++. So.6

Програмата трябва да се управлява като
./ Testgui -qws

Qt на beagleboard

1) Какво значи толкова, колкото три парчета? един в различни папки, и едно и също?
2) точно. Самата Библия libstdc ++. So.6.0.10, и че би било възможно да го актуализира, без възстановяване на целия софтуер и не преименувайте самата Библия, като прави връзка с вече работно заглавие libstdc ++. И така Както Библията и връзката трябва да се намира в близост.
3) Отидете до директорията, където се намира libstdc ++ so.6 и ние команда като корен .:
# Ln -s libstdc ++. So.6 libstdc ++. Така че
или
# Ln -s libstdc ++. So.6.0.10 libstdc ++. Така че
Въпреки това, което имате там в папката.