Как собрать Qt 5.1 для цели QNX (arm)

новое обновление

Я думаю, что я должен редактировать название сейчас.

Чтобы убедиться, что я получил чистую окружающую среду, я

  1. скачайте qr5.1.1 код src с qt-prject.
  2. экспортируйте QNX_TARGET, QNX_HOST и добавьте QNX_HOST в PATH.
  3. затем запустите скрипт
    ./configure -opensource -confirm-license -xplatform qnx-armv7le-qcc -v

поэтому здесь -opensource -confirm-license просто избегайте Q&A -v — показать полное сообщение.

много сообщений об ошибках.

Creating qmake...
make: Nothing to be done for `first'.
Running configuration tests...
Determining architecture... ()
qcc -Vgcc_ntoarmv7le -c -Wno-psabi -lang-c++ -g -Wall -W -fPIE -DQT_NO_CLIPBOARD -I../../mkspecs/qnx-armv7le-qcc -I. -I/opt/qnx650/target/qnx6/usr/include -I/opt/qnx650/target/qnx6/usr/include/freetype2 -o arch.o arch.cpp
Unable to determine architecture!

Could not determine the target architecture!
Turn on verbose messaging (-v) to see the final report.
Determining architecture... ()
g++ -c -pipe -g -Wall -W -fPIE  -I../../mkspecs/linux-g++ -I. -o arch.o arch.cpp
g++  -o arch arch.o    { test -n "" && DESTDIR="" || DESTDIR=.; } && test $(gdb --version | sed -e 's,[^0-9]\+\([0-9]\)\.\([0-9]\).*,\1\2,;q') -gt 72 && gdb --nx --batch --quiet -ex 'set confirm off' -ex "save gdb-index $DESTDIR" -ex quit 'arch' && test -f arch.gdb-index && objcopy --add-section '.gdb_index=arch.gdb-index' --set-section-flags '.gdb_index=readonly' 'arch' 'arch' && rm -f arch.gdb-index || true
Found architecture in binary
CFG_HOST_ARCH="x86_64"CFG_HOST_CPUFEATURES=" mmx sse sse2"System architecture: 'unknown'
Host architecture: 'x86_64'
C++11 auto-detection... ()
qcc -Vgcc_ntoarmv7le -c -Wno-psabi -lang-c++ -O2 -Wc,-std=gnu++0x -Wall -W -fPIE-DQT_NO_CLIPBOARD -I../../../mkspecs/qnx-armv7le-qcc -I. -I/opt/qnx650/target/qnx6/usr/include -I/opt/qnx650/target/qnx6/usr/include/freetype2 -o c++11.o c++11.cpp
C++11 disabled.
floatmath auto-detection... ()
qcc -Vgcc_ntoarmv7le -c -Wno-psabi -lang-c++ -O2 -Wall -W -fPIE -DQT_NO_CLIPBOARD-I../../../mkspecs/qnx-armv7le-qcc -I. -I/opt/qnx650/target/qnx6/usr/include -I/opt/qnx650/target/qnx6/usr/include/freetype2 -o floatmath.o floatmath.cpp
qcc -Vgcc_ntoarmv7le -c -Wno-psabi -lang-c++ -O2 -Wall -W -fPIE -DQT_NO_CLIPBOARD -I../../../mkspecs/qnx-armv7le-qcc -I. -I/opt/qnx650/target/qnx6/usr/include -I/opt/qnx650/target/qnx6/usr/include/freetype2 -o freetype.o freetype.cpp
FreeType disabled.
STL auto-detection... ()
qcc -Vgcc_ntoarmv7le -c -Wno-psabi -lang-c++ -O2 -Wall -W -fPIE -DQT_NO_CLIPBOARD -I../../../mkspecs/qnx-armv7le-qcc -I. -I/opt/qnx650/target/qnx6/usr/include -I/opt/qnx650/target/qnx6/usr/include/freetype2 -o stltest.o stltest.cpp
STL disabled.
STL functionality check failed! Cannot build Qt with this STL library.
Turn on verbose messaging (-v) to /home/pasadeveloper/qt-everywhere-opensourcesrc-5.1.1/qtbase/configure to see the final report.

ОБНОВИТЬ:
Я работаю над QNX для ARM, цель — устройство на платформе arm.
Все становится странным. в Env Var я положил

$QNX_CONFIGURATION=/etc/qnx
$QNX_JAVAHOME=/opt/qnx650/_jvm
$QNX_TARGET=/opt/qnx650/target/qnx6
$QNX_HOST=/opt/qnx650/host/linux/x86

но, когда я делаю qmake qmake.conf папка mkspecs / qnx-armv7le-qcc
возвращает сообщение об ошибке Project ERROR: QNX_TARGET environment variable not set

Понятия не имею, что происходит сейчас.


не только qmake qmake.conf
Я пытаюсь собрать qt 5.1.2 на другом хосте, ubuntu 12.04-64bit.
также получить то же сообщение об ошибке. Project ERROR: QNX_TARGET environment variable not set


Я работал над разработкой Qt под linux (FYI Ubuntu 12.04 -64bit), но мне нужно скомпилировать эту программу в двоичный файл для QNX.
Я устанавливаю QNX MOmentics IDE, которая предоставляет мне QNX-gcc.
но я не могу найти qmake-qnx.

В QT / gcc_64 / mkspecs / qnx-armv7le-qcc есть файл с именем qmake.conf. Я предполагаю, что именно здесь я могу создать свой qmake-qnx. после запуска qmake -o Makefile qmake.conf генерируется Makefile.

Однако когда я запускаю make, произошла ошибка.

qcc -Vgcc_ntoarmv7le -lang-c++ -Wl,-rpath-link,/opt/qnx650/target/qnx6/armle-v7/lib -Wl,-rpath-link,/opt/qnx650/target/qnx6/armle-v7/usr/lib -Wl,-O1 -Wl,-O1 -Wl,-rpath,/home/pasadeveloper/Qt5.1.0/5.1.0/gcc_64 -Wl,-rpath,/home/pasadeveloper/Qt5.1.0/5.1.0/gcc_64/lib -o qmake    -L/opt/qnx650/target/qnx6/armle-v7/lib -L/opt/qnx650/target/qnx6/armle-v7/usr/lib -lm -L/home/pasadeveloper/Qt5.1.0//5.1.0/gcc_64/lib -lQt5Gui -lQt5Core -lGL -lpthread

cc: no files to process
make: *** [qmake] Error 1
pasadeveloper@ubuntu:~/Qt5.1.0/5.1.0/gcc_64/mkspecs/qnx-armv7le-qcc$

4

Решение

Вы не «генерируете» свой qmake-qnx таким образом. Вы должны использовать нативный qmake для генерации правильных make-файлов для вашей цели, чтобы помочь кросс-компиляции. Кроме того, работает qmake qmake.conf в соответствующей папке mkspecs это неправильно, потому что это не файл проекта, как вы думаете.

Например, при сборке самого Qt вы должны использовать соответствующие файлы mkspecs для цели, в этом случае это тот файл, который вы также упомянули выше, если он собран для этого конкретного варианта arm qnx, называемый qnx-armv7le-qcc,

Вот точная команда, которую вам нужно запустить после загрузки соответствующих источников Qt, например, 5.1.1:

./configure -opensource -confirm-license -xplatform qnx-armv7le-qcc -v

Для этой версии QNX, нижняя строка, если у вас нет SP1 а также libscreen, это не будет работать. Плагин QPA будет ссылаться на него. Эта библиотека предоставляет API для графического сервера в новых вариантах QNX. Вам нужно поговорить с представителями QNX.

Вот Вы можете найти дополнительную информацию по теме.

4

Другие решения

$ QNX_TARGET = / опт / qnx650 / цель / QNX6

вероятно, не делает то, что вы хотите. В сценариях оболочки вы не ставите «$» перед переменной, когда определяете переменную, только при обращении к переменной:

Х = привет

эхо $ X

1

По вопросам рекламы [email protected]