Russian Qt Forum

Qt => Qt Embedded => Тема начата: Sergey от Февраль 08, 2011, 19:05



Название: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 08, 2011, 19:05
Здравствуйте !

Требуется собрать Qt embedded linux под ARM.Скачал qt-embedded-linux-opensource-src-4.5.3. Скачал кросс-компилятор arm-linux-gcc-4.3.2. Далее  я сделал :
export PATH=/usr/local/arm/4.3.2/bin:$PATH

Потом поменял :
#QMAKE_CC = arm-linux-gcc

#QMAKE_CXX = arm-linux-g++

#QMAKE_LINK = arm-linux-g++

#QMAKE_LINK_SHLIB = arm-linux-g++

на :

QMAKE_CC = arm-none-linux-gnueabi-gcc

QMAKE_CXX = arm-none-linux-gnueabi-g++

QMAKE_LINK = arm-none-linux-gnueabi -g++

QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++

#QMAKE_AR = arm-linux-ar cqs

#QMAKE_OBJCOPY = arm-linux-objcopy

#QMAKE_STRIP = arm-linux-strip

на:

QMAKE_AR = arm-none-linux-gnueabi-ar cqs

QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy

QMAKE_RANLIB = arm-none-linux-gnueabi –ranlib.

Cохранил этот файл .Потом зашёл в файл  /mkspecs/common/g++.conf. Там поменял  :
QMAKE_CFLAGS_RELEASE += -O2

на :

QMAKE_CFLAGS_RELEASE += -O0.

Сделал конфигурацию : ./configure -embedded arm -xplatform qws/linux-arm-g++ -prefix\/usr/local/Qt-qt-mouse -little-endian -no-webkit -optimized-qmake
 
и получил следующую ошибку :./configure: строка 75: .qmake.vars: Отказано в доступе.

Помогите её исправить , пожалуйста ! Заранее спасибо
 



Название: Re: Qt Embedded Linux под ARM
Отправлено: Ubuntu_linux от Февраль 08, 2011, 20:48
sudo ./configure


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 09, 2011, 12:32
Cпасибо , удалось сконфигурировать файлы ..... но теперь возникла другая проблема и я искал в гуглу ответ , но он мне не помог.
 Прописываю sudo make
Начинается сборка и потом вылетает следующая ошибка :
make[1]: arm-none-linux-gnueabi-g++: Команда не найдена

Помогите пожалуйста решить проблемы со сборкой qt под arm.

Заранее спасибо .


Название: Re: Qt Embedded Linux под ARM
Отправлено: twp от Февраль 09, 2011, 14:21
Я так понимаю редактировался qmake.conf. А можно узнать с какой целью? ведь есть уже есть готовый конфиг для gnueabi. Да и вообще в /usr/local/arm/4.3.2/bin есть arm-none-linux-gnueabi-g++?


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 09, 2011, 14:54
Дa поэтому пути есть arm-none-linux-gnueabi-g++ . А менял я qmake.conf  до такого как сконфигурировал . Вы предалагаете вернуть как было изначально ,и попробовать сделать конфиг ?

Попробовал ничего не менять , конфиг прошёл отлично , а после того как вёл make выбило ошибку такого же плана :
make[1]: arm-linux-g++: Команда не найдена.


Название: Re: Qt Embedded Linux под ARM
Отправлено: Ubuntu_linux от Февраль 09, 2011, 17:46
Дa поэтому пути есть arm-none-linux-gnueabi-g++ . А менял я qmake.conf  до такого как сконфигурировал . Вы предалагаете вернуть как было изначально ,и попробовать сделать конфиг ?

Попробовал ничего не менять , конфиг прошёл отлично , а после того как вёл make выбило ошибку такого же плана :
make[1]: arm-linux-g++: Команда не найдена.

Ну так нет самого arm-linux-g++.

Установи, может так....
sudo apt-get install arm-linux-g++


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 09, 2011, 17:59
Я установил , как вы сказали , набрал опять sudo make ,и вылезла таже ошибка .
Может всё очистить и сделать ещё раз конфиг и мэйк !?


Название: Re: Qt Embedded Linux под ARM
Отправлено: Ubuntu_linux от Февраль 09, 2011, 22:23
Я установил , как вы сказали , набрал опять sudo make ,и вылезла таже ошибка .
Может всё очистить и сделать ещё раз конфиг и мэйк !?
Можно, а что за error ?


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 09, 2011, 23:28
Я пробовал разными методами , если менять  qmake.conf то выдаёт ошибку :
make[1]: arm-none-linux-gnueabi-g++: Команда не найдена
а если не менять
make[1]: arm-linux-g++: Команда не найдена.
Я попробую всё таки очистить и посмотрю может что то изменится


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 10, 2011, 16:46
Поставил всё по новой выскакивает таже самая ошибка .

Может ещё что то надо исправить ?


Название: Re: Qt Embedded Linux под ARM
Отправлено: ритт от Февраль 11, 2011, 03:33
http://en.wikipedia.org/wiki/Environment_variable
PATH

...это как минимум


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 11, 2011, 11:46
простите , не понял , что как минимум !?


Название: Re: Qt Embedded Linux под ARM
Отправлено: ритт от Февраль 12, 2011, 03:24
Qt Embedded - это linux/unix - начните с теоритических основ. расжёвывать каждую команду вряд ли кто захочет...


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 22, 2011, 15:00
и что никто не поможет !?


Название: Re: Qt Embedded Linux под ARM
Отправлено: twp от Февраль 22, 2011, 15:27
как я вижу в самом начале путь для поиска компилятора прописан
Цитировать
export PATH=/usr/local/arm/4.3.2/bin:$PATH
Значит он или неправильно прописан или в нем действительно нет ни arm-linux-g++ ни arm-none-linux-gnueabi-g++
Решение: во первых посмотреть какие файлы находятся по этому пути, во вторых проверить, установился ли этот путь в системе. Для этого ввести в консоле
Код:
echo $PATH


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 22, 2011, 15:59
1 ) то что по этому пути указано на рисунки , которая  хранится здесь :http://s2.ipicture.ru/uploads/20110222/ElsB27o3.png
2)  вот что указано echo $PATH :
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games



Название: Re: Qt Embedded Linux под ARM
Отправлено: Ubuntu_linux от Февраль 22, 2011, 17:58
и что никто не поможет !?
сделай так (заново):
sudo apt-get install arm-none-linux-gnueabi-g++
sudo apt-get install arm-linux-g++

И потом покажи что выйдет!


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 22, 2011, 18:07
вот так :
Код:
sedom@sergey-System-Product-Name:~$ sudo apt-get install arm-none-linux-gnueabi-g++
[sudo] password for sedom:
Чтение списков пакетов... Готово
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
E: Не удалось найти пакет arm-none-linux-gnueabi-g+
E: Не удалось найти пакет по регулярному выражению arm-none-linux-gnueabi-g+
sedom@sergey-System-Product-Name:~$ sudo apt-get install arm-linux-g++
Чтение списков пакетов... Готово
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
Заметьте, выбирается binutils-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается cpp-4.4-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gcc-4.4-arm-linux-gnueabi-base для регулярного выражения arm-linux-g+
Заметьте, выбирается cpp-4.5-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gcc-4.5-arm-linux-gnueabi-base для регулярного выражения arm-linux-g+
Заметьте, выбирается cpp-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается g++-4.4-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gcc-4.4-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается c++-compiler-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается g++-4.5-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gcc-4.5-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается g++-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gcc-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается c-compiler-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gdb-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gfortran-4.4-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gfortran-4.5-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gfortran-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gobjc++-4.4-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gobjc-4.4-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается objc++-compiler-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gobjc++-4.5-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gobjc-4.5-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gobjc++-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается gobjc-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Заметьте, выбирается objc-compiler-arm-linux-gnueabi для регулярного выражения arm-linux-g+
Уже установлена самая новая версия cpp-4.4-arm-linux-gnueabi.
Уже установлена самая новая версия cpp-4.5-arm-linux-gnueabi.
Уже установлена самая новая версия cpp-arm-linux-gnueabi.
Уже установлена самая новая версия g++-4.4-arm-linux-gnueabi.
Уже установлена самая новая версия g++-4.5-arm-linux-gnueabi.
Уже установлена самая новая версия g++-arm-linux-gnueabi.
Уже установлена самая новая версия gcc-4.4-arm-linux-gnueabi.
Уже установлена самая новая версия gcc-4.4-arm-linux-gnueabi-base.
Уже установлена самая новая версия gcc-4.5-arm-linux-gnueabi.
Уже установлена самая новая версия gcc-4.5-arm-linux-gnueabi-base.
Уже установлена самая новая версия gcc-arm-linux-gnueabi.
Уже установлена самая новая версия gfortran-4.4-arm-linux-gnueabi.
Уже установлена самая новая версия gfortran-4.5-arm-linux-gnueabi.
Уже установлена самая новая версия gfortran-arm-linux-gnueabi.
Уже установлена самая новая версия gobjc++-4.4-arm-linux-gnueabi.
Уже установлена самая новая версия gobjc++-4.5-arm-linux-gnueabi.
Уже установлена самая новая версия gobjc++-arm-linux-gnueabi.
Уже установлена самая новая версия gobjc-4.4-arm-linux-gnueabi.
Уже установлена самая новая версия gobjc-4.5-arm-linux-gnueabi.
Уже установлена самая новая версия gobjc-arm-linux-gnueabi.
Уже установлена самая новая версия binutils-arm-linux-gnueabi.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 263 пакетов не обновлено.
sedom@sergey-System-Product-Name:~$


Название: Re: Qt Embedded Linux под ARM
Отправлено: Ubuntu_linux от Февраль 22, 2011, 20:06
отлично, что выводит
sudo ./configure
sudo make
sudo make install


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 23, 2011, 11:18
Отлично , только я так и делаю и выдаёт ошибку. В чём подвох ?


Название: Re: Qt Embedded Linux под ARM
Отправлено: Ubuntu_linux от Февраль 23, 2011, 15:10
Отлично , только я так и делаю и выдаёт ошибку. В чём подвох ?
Покажи что видает, каждый шаг.  ???


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 23, 2011, 17:19
вот это после sudo  ./configure -embedded arm  -little-endian :
Код:
Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into /usr/local/Trolltech/QtEmbedded-4.5.3-arm

To reconfigure, run 'make confclean' and 'configure'.

sedom@sergey-System-Product-Name:~/qt-embedded-linux-opensource-src-4.5.3$

и вот долгожданный sudo make
Код:
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$


Название: Re: Qt Embedded Linux под ARM
Отправлено: Ubuntu_linux от Февраль 23, 2011, 19:00
 A что дает команда:
man arm-linux-g++


Название: Re: Qt Embedded Linux под ARM
Отправлено: twp от Февраль 23, 2011, 19:13
интересно, а что даст такой поиск
find / -name arm-linux-g++*

кстати в логе установки присутсвуют версии 4.4 и 4.5 а путь натравлен на 4.3.2


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 24, 2011, 11:24
после команды man arm-linux-g++ выдаёт следующее :
Код:
sedom@sergey-System-Product-Name:~/qt-embedded-linux-opensource-src-4.5.3$ man arm-linux-g++
Нет справочной страницы для arm-linux-g++
sedom@sergey-System-Product-Name:~/qt-embedded-linux-opensource-src-4.5.3$

после команды выдаёт sudo find  / -name arm-linux-g++ выдаёт следующее :
Код:
sedom@sergey-System-Product-Name:~/qt-embedded-linux-opensource-src-4.5.3$ sudo find / -name arm-linux-g++
/usr/local/arm/4.3.2/bin/arm-linux-g++
/home/sergey/usr/local/arm/4.3.2/bin/arm-linux-g++
sedom@sergey-System-Product-Name:~/qt-embedded-linux-opensource-src-4.5.3$


Название: Re: Qt Embedded Linux под ARM
Отправлено: Ubuntu_linux от Февраль 24, 2011, 11:36
может модифицировать файл configure  и поставить нужний путь к arm-linux-g++


так один пакет не установился...
Код
Bash
sedom@sergey-System-Product-Name:~$ sudo apt-get install arm-none-linux-gnueabi-g++
[sudo] password for sedom:
Чтение списков пакетов... Готово
Построение дерева зависимостей      
Чтение информации о состоянии... Готово
E: Не удалось найти пакет arm-none-linux-gnueabi-g+
E: Не удалось найти пакет по регулярному выражению arm-none-linux-gnueabi-g+
переустанови....


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 24, 2011, 11:56
как переустановить !? он не находит arm-none-linux-gnueabi-g++ .

Вы имеете ввиду configure ,который в сразу в корневом катологе ?


Название: Re: Qt Embedded Linux под ARM
Отправлено: twp от Февраль 24, 2011, 12:31
Смотрим что находится в PATH
Цитировать
вот что указано echo $PATH :
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
А что показал поиск
Цитировать
sedom@sergey-System-Product-Name:~/qt-embedded-linux-opensource-src-4.5.3$ sudo find / -name arm-linux-g++
/usr/local/arm/4.3.2/bin/arm-linux-g++
/home/sergey/usr/local/arm/4.3.2/bin/arm-linux-g++
Ничего не настораживает?


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 24, 2011, 12:56
 То есть я так понимаю нигде ничего не меняя прописать путь  export PATH=/usr/local/arm/4.3.2/bin:$PATH потом сделать конфиг , потом прописать путь до qmake и потом написать sudo make . Так попробовать ?  Я попробовал так , всё таже ошибка . а ещё когда происходил конфиг я смог вытянуть интересную штуку , только не до конца понял ,что она означает :
Код:
./configure: строка 5992: arm-linux-g++: команда не найдена

Building on:   qws/linux-x86-g++
Building for:  qws/linux-arm-g++
Architecture:  arm
Host architecture: i386

Может это нам поможет .


Название: Re: Qt Embedded Linux под ARM
Отправлено: twp от Февраль 24, 2011, 17:23
не понятно почему не находит arm-linux-g++
что выдаст если просто ввести в консоль
Код:
arm-linux-g++
кроме того нужно указать платформу хоста при конфигурации (linux-g++)
Код:
./configure -platform linux-g++ -embedded arm -xplatform qws/linux-arm-g++ -prefix /usr/local/Qt-qt-mouse ..
да и желательно почистить перед этим директорию сборки от Makeifile* и *.o
а лучше вообще удалить и заново распаковать исходники


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 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 
.Ошибка всё таже . Вопрос , что мне делать !? )


Название: Re: Qt Embedded Linux под ARM
Отправлено: twp от Февраль 24, 2011, 20:13
ага, значит arm-linux-g++ это просто симлинк на arm-none-linux-gnueabi-g++ и в системе все установлено
тогда проблема в другом. Можно лог с ошибкой по-подробнее?


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 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$


Название: Re: Qt Embedded Linux под ARM
Отправлено: twp от Февраль 25, 2011, 12:36
у меня тоже что-то подобное было. Не помню как это все разрешилось. Немного погуглив нашел вот это http://www.friendlyarm.net/forum/topic/2291?lang=de (http://www.friendlyarm.net/forum/topic/2291?lang=de) возможно это поможет решить проблему


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Февраль 25, 2011, 12:38
я смотрел эту ссылку , только не знаю как ей воспользоватся.


Название: Re: Qt Embedded Linux под ARM
Отправлено: twp от Февраль 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.


Название: Re: Qt Embedded Linux под ARM
Отправлено: Sergey от Май 12, 2011, 15:53
Здравствуйте !

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

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

Заранее благодарен !


Название: Re: Qt Embedded Linux под ARM
Отправлено: eternal_ego от Октябрь 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

Т.е. дело не в библиотеках, а в чём-то глубоко системном. Есть какие-нибудь мысли по этому поводу?


Название: Re: Qt Embedded Linux под ARM
Отправлено: BRE от Октябрь 10, 2011, 11:17
Судя по ошибке при компиляции подключается хедер qatomic_i386.h, вместо необходимого qatomic_arm*.h
Что то ты не так сконфигурировал.


Название: Re: Qt Embedded Linux под ARM
Отправлено: eternal_ego от Октябрь 10, 2011, 11:26
Согласен. Но -xplatform qws/linux-arm-gnueabi-g++ явно указывает на целевую платформу, параметры оттуда однозначно читаются, и от конфигурации под qws здесь конфиг отличается только отсутствием embedded. Но видимо нужно что-то ещё, и я, к сожалению, пока не понял, что именно :(

upd: хотя всё может объясняться просто - например тем, что тулсы arm-2009q1 просто не могут собрать релиз 4.7.4 ...


Название: Re: Qt Embedded Linux под ARM
Отправлено: gogi от Октябрь 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'ы уже и так нормально прописаны.


Название: Re: Qt Embedded Linux под ARM
Отправлено: eternal_ego от Октябрь 11, 2011, 08:21
Папку с конфигом в mkspecs я добавил самостоятельно, по инерции в подпапку qws. Думаю, что то, в какой папке оно лежит, на результат не должно влиять, имеет же значение что внутри файлов qmake.conf (который я и привёл), все указанные опции как раз в нём. Опций многовато, возможно и правда что-то лишнее.

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

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


Название: Re: Qt Embedded Linux под ARM
Отправлено: gogi от Октябрь 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.