LINUX.ORG.RU

чем собрать Qt для QNX: gcc или qcc

 , , ,


0

2

собрал Qt5 по этой инструкции: http://qt-project.org/wiki/Building-Qt5-for-the-Playbook (компилировал под оффтопиком с помощью mingw)
настроил Qt Creator 2.6 beta на компиляцию под Blackberry Playbook с помощью qcc из bbndk-2.1.0-beta1, да только вот беда - любое приложение (widgets или qtquick2) успешно собравшись в .bar (который весит около 80мб - внутри лежат все необходимые либы) и установившись на реальный playbook (os 2.1.0.1032), вылетает сразу же после splash-скрина. и тут, почесав репу, я задумался: а как же либы, собранные с помощью mingw, пусть даже с Qt сконфигурированным для blackberry-armv7le-qcc, могут работать на плэйбуке? ведь если бы gcc мог выдавать код, пригодный для этой архитектуры, то не нужен был бы qcc
удалив всё, решил попробовать собрать Qt на этот раз с помощью qcc - добавил в самое начало PATH C:\bbndk-2.1.0-beta1\host\win32\x86\usr\bin, запустил make - но не тут-то было. в выводе всё равно мелькало g++, что мне не понравилось
вопрос к знатокам: правильно ли, что для сборки кьютовых приложений под плэйбук необходимо собрать Qt обязательно с помощью qcc? и как это сделать в моём случае? мне что теперь, удалить на время сборки mingw, чтоб он не мешался? просто я думал, что пути в PATH учитываются приоритетно, а тут такое

qcc не компилятор как подсказывает гугл, а врапер чтобы гцц собирал с нужными опциями, не разобравшись в тонкостях вестимо qcc только.. и да всё что будете пускать на плейбуке надо компилировать qcc(если не выполнять его работу вручную)

ЗЫ и да собирает всёравно g++, но с параметрами переданными qcc

Thero ★★★★★
()
Ответ на: комментарий от Thero

гм. прочитал ваш комментарий. посмотрел содержимое bbndk-env.bat, который необходимо запускать перед сборкой. там содержимое такое

set QNX_TARGET=C:/bbndk-2.1.0-beta1/target/qnx6
set QNX_HOST=C:/bbndk-2.1.0-beta1/host/win32/x86
set QNX_CONFIGURATION=C:\Users\username\AppData\Local\Research In Motion\BlackBerry Native SDK
set MAKEFLAGS=-I%QNX_TARGET%/usr/include
set PATH=%QNX_HOST%\usr\bin;%QNX_CONFIGURATION%\bin;%QNX_HOST%\usr\qde\eclipse\jre\bin;%PATH%
то есть путь к qcc всяко оказывается на первом месте. но тогда почему в инструкции написано пользоваться mingw32-make вместо make из qcc? извините за глупый вопрос, просто не хочу тратить ещё кучу времени на неправильную сборку.

vladimirsmirnov9
() автор топика

ведь если бы gcc мог выдавать код, пригодный для этой архитектуры

такую архитектуру найти крайне сложно. «If it sucks, port it to more platforms» (c)

annulen ★★★★★
()
Ответ на: комментарий от vladimirsmirnov9

хм.. посмотрел гайд СПВ там конфигурят с нужными опциями и кьют можно собирать и так.

тогда предположу что неправильно собрана сама программа?
http://qt-project.org/wiki/Building_and_Deploying_Qt_Applications_to_the_Play...

увы помочь дальше особо не смогу опыта в этом нет.

Thero ★★★★★
()

оказывается, забыл добавить

QCoreApplication::addLibraryPath("app/native/lib");
qputenv("QT_QPA_FONTDIR", "/usr/fonts/font_repository/monotype");
но это тоже проблему не решило. и тут я вдруг вспомнил, что где-то с месяц назад собирал HelloCpp из Cocos2D, а недавно он у меня вдруг перестал работать - с теми же самыми симптомами. может всё дело в истёкшем debug token? я уже не знаю, в какую сторону копать. потому что при компиляции
19:32:54: Выполняются этапы для проекта untitled3...
19:32:55: Запускается: «C:\Qt\Qt5playbook\bin\qmake.exe» C:\Users\username\Documents\projects\untitled3\untitled3.pro -r -spec C:\Users\username\qtbase\mkspecs\blackberry-armv7le-qcc
19:32:55: Процесс «C:\Qt\Qt5playbook\bin\qmake.exe» завершился нормально.
19:32:55: Запускается: «C:\bbndk-2.1.0-beta1\host\win32\x86\usr\bin\make.exe» -w
make: Entering directory `C:/Users/username/Documents/projects/untitled3-build-Blackberry-Release'
qcc -Vgcc_ntoarmv7le -c -fstack-protector -fstack-protector-all -Wno-psabi -lang-c++ -O2 -Wall -W -D_REENTRANT -fPIE -DQ_OS_BLACKBERRY -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../qtbase/mkspecs/blackberry-armv7le-qcc -I../untitled3 -I../../../../../Qt/Qt5playbook/include -I../../../../../Qt/Qt5playbook/include/QtQuick -I../../../../../Qt/Qt5playbook/include/QtQml -I../../../../../Qt/Qt5playbook/include/QtNetwork -I../../../../../Qt/Qt5playbook/include/QtGui -I../../../../../Qt/Qt5playbook/include/QtCore -I. -I../../../../../bbndk-2.1.0-beta1/target/qnx6/usr/include -I../../../../../bbndk-2.1.0-beta1/target/qnx6/usr/include/freetype2 -I. -o main.obj ../untitled3/main.cpp
qcc -Vgcc_ntoarmv7le -lang-c++ -Wl,-rpath-link,C:/bbndk-2.1.0-beta1/target/qnx6/armle-v7/lib -Wl,-rpath-link,C:/bbndk-2.1.0-beta1/target/qnx6/armle-v7/usr/lib -Wl,-O1 -o untitled3 main.obj   -LC:/bbndk-2.1.0-beta1/target/qnx6/armle-v7/lib -LC:/bbndk-2.1.0-beta1/target/qnx6/armle-v7/usr/lib -LC:/Qt/Qt5playbook/lib -lQtQuick -LC:/Users/username/qtdeclarative/lib -lQtQml -lQtNetwork -lsocket -lQtGui -lQtCore -lm -lbps -lGLESv2 -lEGL 
make: Leaving directory `C:/Users/username/Documents/projects/untitled3-build-Blackberry-Release'
C:\bbndk-2.1.0-beta1\host\win32\x86\usr\bin\ntoarm-ld: warning: libQtV8.so.5, needed by C:/Qt/Qt5playbook/lib/libQtQuick.so, not found (try using -rpath or -rpath-link)
и дальше куча соответственно undefined reference, это несмотря на то, что все либы лежат в одной папке, собственно C:/Qt/Qt5playbook/lib/. прописываю в .pro-файле руками LIBS += C:\Qt\Qt5playbook\lib\libQtV8.so.5 - всё компилируется, но не работает :/

vladimirsmirnov9
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.