Russian Qt Forum
Ноябрь 23, 2024, 07:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: Qt Embedded Linux под ARM  (Прочитано 36236 раз)
Sergey
Гость
« Ответ #30 : Февраль 24, 2011, 17:46 »

когда ввожу arm-linux-g++ пишет следующее :
Код:
sedom@sergey-System-Product-Name:~/qt-embedded-linux-opensource-src-4.5.3$ arm-linux-g++
arm-none-linux-gnueabi-g++: no input files
sedom@sergey-System-Product-Name:~/qt-embedded-linux-opensource-src-4.5.3$
.Директрорию каждый раз удаляю и распоковываю . Потом попробовал сконфигурировать вот так :
Код:
./configure -platform linux-g++ -embedded arm -xplatform qws/linux-arm-g++ -little-endian 
.Ошибка всё таже . Вопрос , что мне делать !? )
« Последнее редактирование: Февраль 24, 2011, 19:31 от Sergey » Записан
twp
Гость
« Ответ #31 : Февраль 24, 2011, 20:13 »

ага, значит arm-linux-g++ это просто симлинк на arm-none-linux-gnueabi-g++ и в системе все установлено
тогда проблема в другом. Можно лог с ошибкой по-подробнее?
Записан
Sergey
Гость
« Ответ #32 : Февраль 25, 2011, 11:52 »

вот описание ошибки :
Код:
make[1]: Вход в каталог `/home/sedom/qt-embedded-linux-opensource-src-4.5.3/src/corelib'
arm-linux-g++ -c -pipe -fno-exceptions -O2 -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DHB_EXPORT=Q_CORE_EXPORT -DQT_NO_DEBUG -I../../mkspecs/qws/linux-arm-g++ -I. -I../../include -I../../include/QtCore -I.rcc/release-shared-emb-arm -Iglobal -I../3rdparty/zlib -I../3rdparty/harfbuzz/src -I.moc/release-shared-emb-arm -o .obj/release-shared-emb-arm/qatomic_arm.o arch/arm/qatomic_arm.cpp
make[1]: arm-linux-g++: Команда не найдена
make[1]: *** [.obj/release-shared-emb-arm/qatomic_arm.o] Ошибка 127
make[1]: Выход из каталога `/home/sedom/qt-embedded-linux-opensource-src-4.5.3/src/corelib'
make: *** [sub-corelib-make_default-ordered] Ошибка 2
sedom@sergey-System-Product-Name:~/qt-embedded-linux-opensource-src-4.5.3$
Записан
twp
Гость
« Ответ #33 : Февраль 25, 2011, 12:36 »

у меня тоже что-то подобное было. Не помню как это все разрешилось. Немного погуглив нашел вот это http://www.friendlyarm.net/forum/topic/2291?lang=de возможно это поможет решить проблему
Записан
Sergey
Гость
« Ответ #34 : Февраль 25, 2011, 12:38 »

я смотрел эту ссылку , только не знаю как ей воспользоватся.
Записан
twp
Гость
« Ответ #35 : Февраль 28, 2011, 12:50 »

ну там предложен следующий вариант решения:

Цитировать
Solution
I have solved this problem by configuring the full path to compiler within
qmake.conf:
/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-g++ etc.
After compiling qmake again i was able to configure qmake within qtcreator
and compile the program.
Записан
Sergey
Гость
« Ответ #36 : Май 12, 2011, 15:53 »

Здравствуйте !

Проблема насчет установки Qt под Arm осталось тойже . Я бы хотел попросить тех людей у которых стоит qt под arm cкомпилировать мне 1 проект . Желательно чтоб он был собран статично . И наверно нужно будет  qwt   , чтобы скомпилировать данный проект .

Если кто может помочь , напишите пожалуйста.

Заранее благодарен !
Записан
eternal_ego
Гость
« Ответ #37 : Октябрь 10, 2011, 11:10 »

Qt embedded под ARM собирал, только версию 4.4.3 - проблем не возникало.

Но проблемы возникли в другом: захотелось, чтобы приложения Qt работали на платформе ARM, но не через QWS сервер, а через X-сервер. Для этого взял другие исходники - qt-everywhere-opensource-src-4.7.4

конфигурирую так:
./configure -xplatform qws/linux-arm-gnueabi-g++ -little-endian -static -exceptions -qt3support -no-glib -no-dbus -no-phonon -no-phonon-backend -no-mmx -no-3dnow -no-sse -no-sse2 -qt-gif -qt-libpng -qt-libjpeg -qt-freetype -no-libtiff -no-libmng -no-cups -no-sql-sqlite -qt-mouse-tslib -xsync -declarative -v

Собранные нужными toolchain библиотеки X11 под свою платформу скопировал с девайса (TDM-3730), они при конфигурировании подцепились нормально. Хотя, подозреваю, я их не совсем корректно подцепил через -rpath-link , но иначе линкер при конфигурировании их не видел.

Код:
include(../../common/g++.conf)
include(../../common/linux.conf)

MAKEFILE_GENERATOR = UNIX
TEMPLATE = app
CONFIG += qt warn_on release link_prl
QT                      += core gui network
QMAKE_INCREMENTAL_STYLE = sublib

QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = yacc
QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS = -pipe
QMAKE_CFLAGS_WARN_ON = -Wall -W
QMAKE_CFLAGS_WARN_OFF =
QMAKE_CFLAGS_RELEASE = -O2
QMAKE_CFLAGS_DEBUG = -g
QMAKE_CFLAGS_SHLIB = -fPIC
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
QMAKE_CFLAGS_THREAD = -D_REENTRANT
QMAKE_CFLAGS_HIDESYMS   = -fvisibility=hidden

QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
QMAKE_CXXFLAGS_HIDESYMS = $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden

QMAKE_INCDIR += /home/q/p347/qt/tslib_install/include
QMAKE_LIBDIR += /home/q/p347/qt/tslib_install/lib
QMAKE_INCDIR_X11 = /usr/include
QMAKE_LIBDIR_X11 = /home/q/p347/qt/x11_arm_lib
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
QMAKE_INCDIR_OPENGL =
QMAKE_LIBDIR_OPENGL =
QMAKE_INCDIR_QTOPIA = $(QPEDIR)/include
QMAKE_LIBDIR_QTOPIA = $(QPEDIR)/lib

QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
QMAKE_LFLAGS += -t -rpath-link /home/q/p347/qt/x11_arm_lib/libXau.so.6\
    -rpath-link /home/q/p347/qt/x11_arm_lib/libXdmcp.so.6\
    -rpath-link /home/q/p347/qt/x11_arm_lib/libX11.so.6\
    -rpath-link /home/q/p347/qt/x11_arm_lib/libXfixes.so.3\
    -rpath-link /home/q/p347/qt/x11_arm_lib/libXrender.so.1\
    -rpath-link /home/q/p347/qt/x11_usr_lib/libpthread-stubs.so.0\
    -rpath-link /home/q/p347/qt/x11_usr_lib/libxcb.so.1\
    -rpath-link /home/q/p347/qt/x11_usr_lib/libICE.so.6
QMAKE_LFLAGS_RELEASE =
QMAKE_LFLAGS_DEBUG =
QMAKE_LFLAGS_SHLIB      = -shared
QMAKE_LFLAGS_PLUGIN     = $$QMAKE_LFLAGS_SHLIB
QMAKE_LFLAGS_SONAME     = -Wl,-soname,
QMAKE_LFLAGS_THREAD     =

QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD      = -ldl
QMAKE_LIBS_QT = -lqte
QMAKE_LIBS_QT_THREAD    = -lqte-mt
QMAKE_LIBS_OPENGL = -lGLU -lGL -lXt
QMAKE_LIBS_OPENGL_QT = -lGL -lXt
QMAKE_LIBS_QTOPIA = -lqpe -lqtopia
QMAKE_LIBS_THREAD       = -lpthread
QMAKE_LIBS_OPENGL =

QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
QMAKE_UIC = $$[QT_INSTALL_BINS]/uic

QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_RANLIB = arm-none-linux-gnueabi-ranlib

QMAKE_TAR = tar -cf
QMAKE_GZIP = gzip -9f

QMAKE_COPY = cp -f
QMAKE_MOVE = mv -f
QMAKE_DEL_FILE = rm -f
QMAKE_DEL_DIR = rmdir
QMAKE_STRIP             = arm-none-linux-gnueabi-strip
QMAKE_CHK_DIR_EXISTS = test -d
QMAKE_MKDIR = mkdir -p
load(qt_config)

А ошибка в чём:
Код:
In file included from animation/qabstractanimation.cpp:902:
../../include/QtCore/../../src/corelib/arch/qatomic_i386.h: In destructor 'QWeakPointer<T>::~QWeakPointer() [with T = QAbstractAnimation]':
../../include/QtCore/../../src/corelib/arch/qatomic_i386.h:132: error: impossible constraint in 'asm'
gmake[1]: *** [.obj/release-static/qabstractanimation.o] Error 1
gmake: *** [sub-corelib-make_default-ordered] Error 2

Т.е. дело не в библиотеках, а в чём-то глубоко системном. Есть какие-нибудь мысли по этому поводу?
« Последнее редактирование: Октябрь 10, 2011, 11:27 от eternal_ego » Записан
BRE
Гость
« Ответ #38 : Октябрь 10, 2011, 11:17 »

Судя по ошибке при компиляции подключается хедер qatomic_i386.h, вместо необходимого qatomic_arm*.h
Что то ты не так сконфигурировал.
Записан
eternal_ego
Гость
« Ответ #39 : Октябрь 10, 2011, 11:26 »

Согласен. Но -xplatform qws/linux-arm-gnueabi-g++ явно указывает на целевую платформу, параметры оттуда однозначно читаются, и от конфигурации под qws здесь конфиг отличается только отсутствием embedded. Но видимо нужно что-то ещё, и я, к сожалению, пока не понял, что именно Грустный

upd: хотя всё может объясняться просто - например тем, что тулсы arm-2009q1 просто не могут собрать релиз 4.7.4 ...
« Последнее редактирование: Октябрь 10, 2011, 12:01 от eternal_ego » Записан
gogi
Гость
« Ответ #40 : Октябрь 11, 2011, 07:36 »

Qt embedded под ARM собирал, только версию 4.4.3 - проблем не возникало.

Но проблемы возникли в другом: захотелось, чтобы приложения Qt работали на платформе ARM, но не через QWS сервер, а через X-сервер. Для этого взял другие исходники - qt-everywhere-opensource-src-4.7.4
Т.е. дело не в библиотеках, а в чём-то глубоко системном. Есть какие-нибудь мысли по этому поводу?

qws/linux-arm-gnueabi-g++ - ты указываешь конфиг от QWS, а хочешь получить X11? И на что ты расчитываешь? С exceptions и без embedded этот конфиг врят ли соберётся.

Далее, ты тут выложил файл своего проекта? Большая часть опций, имхо, должна быть в mkspec платформы (qws/linux-arm-gnueabi-g++?).
Так обычно никто не делает. А причина проста: опций дохрена и в них очень легко запутаться и войти в конфликт с системными. Что у тебя скорее всего и произошло. Переопределять нужно только то, что ты используешь. А вот флаги компилятора, всякие flex'ы уже и так нормально прописаны.
Записан
eternal_ego
Гость
« Ответ #41 : Октябрь 11, 2011, 08:21 »

Папку с конфигом в mkspecs я добавил самостоятельно, по инерции в подпапку qws. Думаю, что то, в какой папке оно лежит, на результат не должно влиять, имеет же значение что внутри файлов qmake.conf (который я и привёл), все указанные опции как раз в нём. Опций многовато, возможно и правда что-то лишнее.

Что примечательно, собрал 4.4.3 без флага embedded (заново, с чистого дистрибутива), и всё равно работает через -qws. С exeptions, кстати.

Как оно вообще, по идее, должно собираться под arm+x11 ?
Записан
gogi
Гость
« Ответ #42 : Октябрь 11, 2011, 10:04 »

Цитировать
qmake.conf (который я и привёл), все указанные опции как раз в нём. Опций многовато, возможно и правда что-то лишнее.
Теперь ясно. Я думаю можно продолжать в таком духе и изменять лишь разве что всякие QMAKE_CC/QMAKE_CXX и т.п. А всё остальное есть во включаемых g++.conf/linux.conf Ещё думаю лучше взять базовый спек из Qt 4.7.4 (linux-g++), а не 4.4.3 И для него вносить свои изменения. Просто у тебя в спеке есть такое
Код:
QMAKE_LIBS_QT		= -lqte
QMAKE_LIBS_QT_THREAD    = -lqte-mt
QMAKE_LIBS_QTOPIA = -lqpe -lqtopia
А этого в новых кьютях уже давным давно нету. По аналогии можно подумать, что что-то тут уже устарело и неправильно используется.

Как оно вообще, по идее, должно собираться под arm+x11 ?

Если нет официальных спеков для кросссборки X11/arm, то значит официально такая сборка не поддерживается.
Но думаю заменить компилятор в linux-g++ на нужный ничего не должно сломать.
Ещё, если не уверен с rpath, попробуй просто добавить библиотеки куда-нибудь в QMAKE_LIBS_X11.
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.205 секунд. Запросов: 21.