Кросс-компиляция QTcreator - PullRequest
       9

Кросс-компиляция QTcreator

0 голосов
/ 06 марта 2012

У меня есть проект в QtCreator, который содержит файлы .c и .cpp, и теперь он собирается и отлично работает под моим текущим GCC.

Я хочу перенести этот код для запуска его на ядре arm5 под управлением linux angstromдистрибутив.

Для этого:

1-Мне нужно получить QTlibraries, построенный, например, из linux-armv5te-linux-gnueabi-toolchain,

2- создать новый проектв QT и добавить эту версию QT к нему.

3 - добавьте linux-armv5te-linux-gnueabi-toolchain в путь набора инструментов qtcreator, чтобы я мог создавать свой код с его помощью.

4- когда я нажимаю build, qmake сгенерирует make-файл, который будет использовать этот linux-armv5te-linux-gnueabi-toolchain для компиляции файлов .c с помощью gcc и файлов .cpp с помощью g ++.

Правильна ли я с моей логикой?

Кроме того, как я могу выполнить шаг 1 выше?

Спасибо

Если я скачаю вышеупомянутую цепочку инструментов и добавлю ее, это путь к корзинеQTcreator, смогу ли я создать тот же проект, который я обсуждал выше (содержащий файлы c и cpp)?

1 Ответ

1 голос
/ 06 марта 2012

Я использовал ARM9 S3C Mini2440. Пожалуйста, загрузите исходный код с сайта Qt и скомпилируйте его. Ниже приведены настройки работы с Qt4.6

@host:/qt-everywhere-opensource-src-4.6.2#./configure \
-opensource \
-confirm-license \
-release -shared \
-embedded arm \
-xplatform qws/linux-arm-g++ \
-depths 16,18,24 \
-fast \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-qt-libpng \
-qt-freetype \
-little-endian -host-little-endian \
-no-qt3support \
-no-libtiff -no-libmng \
-no-opengl \
-no-mmx -no-sse -no-sse2 \
-no-3dnow \
-no-openssl \
-no-webkit \
-no-qvfb \
-no-phonon \
-no-nis \
-no-opengl \
-no-cups \
-no-glib \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-nomake examples -nomake tools -nomake docs \
-qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib

@host:/qt-everywhere-opensource-src-4.6.2# make
@host:/qt-everywhere-opensource-src-4.6.2# make install

После команды установки у вас будет ARM Qt4.6 в вашем /usr/local/Trolltech/QtEmbedded-4.6.2-arm. Создать символическую ссылку на инструмент ARM qmake

ln -s /usr/local/Trolltech/QtEmbedded-4.6.2-arm/bin/qmake /usr/local/bin/qmake-arm

Создать и файл среды для переключения на Qt ARM. Давайте назовем это setenv-qt-arm.sh

export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.6.2-arm
export PATH=/usr/local/Trolltech/QtEmbedded-4.6.2-arm/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib:$LD_LIBRARY_PATH
export CPLUS_INCLUDE_PATH=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/include/c++:/usr/local/arm/4.3.2/arm-none-linux-gnueabi/include/c++/4.3.2/arm-none-linux-gnueabi:$CPLUS_INCLUDE_PATH

Для кросс-компиляции вашего проекта

cd /your_project_dir
. /<path_to>/setenv-qt-arm.sh
qmake-arm
make

Я не кросс-компилировал проект Qt с QtCreator, вместо этого я использовал предыдущие команды. Если вы установите свой qmake на правильный файл (qmake-arm), я думаю, что проблем не должно быть, потому что этот qmake сгенерирует весь Makefile, необходимый для компиляции вашего проекта

...