Проблемы кросс-компиляции Qt 4.7 из исходного кода для ARM

Я пытаюсь сделать кросс-компиляцию Qt 4.7.1 из исходного кода, вот некоторые замечания по моей настройке:

мой ожидаемый вывод - библиотеки общих объектов, которые должны присутствовать для запуска приложения Qt.Моя целевая платформа - процессор TI AM335x с архитектурой ARM Cortex-A8.Моя платформа разработки - 64-битная виртуальная машина Ubuntu x86

Насколько я понимаю, как это должно работать, я загружаю набор инструментов для своей целевой платформы (этоЛинаро Toolchain от TI), я загружаю исходный код дляQt 4.7.1Я установил mkspec для использования моей цепочки инструментов, запустилconfigure, тогда просто нужно запустить /makemake install и я должен быть в состоянии найти все.sos, где я сказал это установить. Я'У меня много проблем с тем, чтобы заставить эту идею работать.

Сначала я скачал версию TI SDK: ti-sdk-am335x-evm-06.00.00.00, в которой есть инструмент для рук. 'Суббота:[root_install_dir]/linux-devkit/sysroots/i686-arago-linux/usr/bin

Я обновил свой$PATH с этим каталогом:

mike @ mike-VirtualBox: ~ $ echo $ PATH/home/mike/ti-sdk-am335x-evm-06.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin : /usr/local/Trolltech/Qt-4.8.5/bin: / home / mike / bin: / usr / lib / lightdm / lightdm: / usr / local / sbin: / usr / local / bin: / usr / sbin : / USR / бен: / SBIN: / бен: / USR / игры: / Главная / микрофон / бен

Затем я создал свой собственный mkspec на основе ближайшего примера:cp -R [qt_install_dir]/mkspecs/qws/linux-arm-gnueabi-g++/ [qt_install_dir]/mkspecs/qws/linux-am335x-g++

и я изменилlinux-am335x-g++/qmake.conf указать на инструменты из TI SDK:

# modifications to g++.conf
QMAKE_CC                = arm-linux-gnueabihf-gcc
QMAKE_CXX               = arm-linux-gnueabihf-g++
QMAKE_LINK              = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB        = arm-linux-gnueabihf-g++

# modifications to linux.conf
QMAKE_AR                = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY           = arm-linux-gnueabihf-objcopy
QMAKE_STRIP             = arm-linux-gnueabihf-strip

Затем я запустил команду настройки:

./configure -prefix /home/mike/qt4.7.1_source/my_qt -включенный arm -platform qws / linux-x86_64-g ++ -xplatform qws / linux-am335x-g ++ -no-mmx -no-3dnow -no-sse - no-sse2 -no-glib -no-cups -no-largefile -no-accessibility -no-openssl -no-gtkstyle -fast -opensource

Он работает какое-то время, затем завершается и говорит:готов сделать /makemake install в этот момент я бегуmake и этоs, где это начинает терпеть неудачу:

/home/mike/qt4.7.1_source/qt-everywhere-opensource-src-4.7.1/bin/moc -DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_FAST_CONCATENATION -DELF_INTERPRETER = \»/lib64/ld-linux-x86-64.so.2 \» -DHB_EXPORT = Q_CORE_EXPORT -DQT_HAVE_NEON -DQT_NO_DEBUG -I ../../ mkspecs / qws / linux-am335x-g ++ -I. -I ../../ include -I ../../ include / QtCore -I.rcc / release-shared-emb-arm -Iglobal -I ../ 3rdparty / harfbuzz / src -I ../ 3rdparty / md5 -I ../ 3rdparty / md4 -I.moc / release-shared-emb-arm kernel / qobject.h -o .moc / release-shared-emb-arm / moc_qobject.cpp arm-linux-gnueabihf-g ++ -С -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_USE_FAST_OPERATOR_PLUS -DQT_USEATENT_CAR/lib64/ld-linux-x86-64.so.2 \» -DHB_EXPORT = Q_CORE_EXPORT -DQT_HAVE_NEON -DQT_NO_DEBUG -I ../../ mkspecs / qws / linux-am335x-g ++ -I. -I ../../ include -I ../../ include / QtCore -I.rcc / release-shared-emb-arm -Iglobal -I ../ 3rdparty / harfbuzz / src -I ../ 3rdparty / md5 -I ../ 3rdparty / md4 -I.moc / release-shared-emb-arm -o .obj / release-shared-emb-arm / qobject.o kernel / qobject.cpp

{стандартный ввод}: сообщения ассемблера:

{стандартный ввод}: 1294: ошибка: выбранный процессор не поддерживает режим Thumb 'swp r6, r4, [r3] '

сделать [1]: [.obj / release-shared-emb-arm / qobject.o] Ошибка 1 *

make [1]: выход из каталога '

/home/mike/qt4.7.1_source/qt-everywhere-opensource-src-4.7.1/src/corelib»

делать: * [sub-corelib-make_default-order] Ошибка 2

Итак, вопрос ... Почему компилятор жалуется, что режим большого пальца не поддерживается? Так как это цепочка инструментов кросс-компиляции дляРУКА на основе процессора, этодолжно быть поддерживается. Тот факт, что этоне заставляет меня чувствовать, чтоmake как-то забирает не ту версию g ++.

Есть мысли о том, что пошло не так и как это исправить?

Ответы на вопрос(2)

Ваш ответ на вопрос