Невозможно скомпилировать диаграммы Qt для встраиваемых Linux-систем в Zynq - PullRequest
1 голос
/ 02 апреля 2019

У меня было приложение, написанное на Qt5.12.2, которое использует QCharts для построения некоторых сигналов.Я хочу, чтобы это приложение запускалось на плате на основе Zynq, в частности на плате Zybo от Xilinx.Однако предоставленная информация для Xilinx охватывает только версию 5.4 Qt: https://xilinx -wiki.atlassian.net / wiki / Spaces / A / pages / 18842110 / Qt + Qwt + Build + Instructions + Qt + 5.4.2 +Qwt + 6.1.2 , который, хотя и правильно компилируется, не обеспечивает необходимый мне модуль Qt Charts.

Я попытался скомпилировать с теми же параметрами, что и в ссылке на Xilinx, однако несколькомодули не могут быть скомпилированы.Чтобы избежать этих ошибок, я попытался пропустить модули, которые не могу скомпилировать, пока не узнаю, что диаграммы Qt также не могут быть скомпилированы.

Последняя конфигурация для компиляции Qt была:

./configure -xplatform arm-linux-gnueabihf-g++ \
    -opensource \
    -confirm-license \
    -nomake examples \
    -verbose -skip qtpurchasing -skip qtconnectivity -skip qtdeclarative -skip qtlocation -skip qtmultimedia -skip qtquickcontrols -skip qtsensors -skip qttools -skip qtwebsockets -skip qtwinextras -skip qtwebchannel -skip qtwebengine \
    -no-gif \
    -no-libjpeg \
    -no-mtdev \
    -no-sql-db2 \
    -no-sql-ibase \
    -no-sql-mysql \
    -no-xcb \
    -qt-freetype \
    -no-fontconfig \
    -no-harfbuzz \
    -no-xcb-xlib \
    -no-cups \
    -no-iconv \
    -no-icu \
    -no-eglfs -no-opengl\
    -no-openssl \
    -prefix $ZYNQ_QT_INSTALL

Где$ZYNQ_QT_INSTALL в этом случае было установлено на /usr/local/Qt-5.12.2/.

Последняя ошибка компиляции была:

arm-linux-gnueabihf-g++ -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../../lib -shared -o libqtchartsqml2.so .obj/chartsqml2_plugin.o .obj/declarativechart.o .obj/declarativexypoint.o .obj/declarativexyseries.o .obj/declarativelineseries.o .obj/declarativesplineseries.o .obj/declarativeareaseries.o .obj/declarativescatterseries.o .obj/declarativepieseries.o .obj/declarativebarseries.o .obj/declarativecategoryaxis.o .obj/declarativemargins.o .obj/declarativeaxes.o .obj/declarativepolarchart.o .obj/declarativeboxplotseries.o .obj/declarativechartnode.o .obj/declarativecandlestickseries.o  -L/home/luighi/Qt-crosscompiled/qt5/qtdeclarative/lib -lQt5Quick -L/home/luighi/Qt-crosscompiled/qt5/qtbase/lib -L/home/luighi/Qt-crosscompiled/qt5/qtcharts/lib -lQt5Charts -lQt5Widgets -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -lpthread    
/opt/Xilinx/SDK/2018.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabihf/7.2.1/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lQt5Quick
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:140: ../../qml/QtCharts/libqtchartsqml2.so] Error 1
make[3]: Leaving directory '/home/luighi/Qt-crosscompiled/qt5/qtcharts/src/chartsqml2'
make[2]: *** [Makefile:91: sub-chartsqml2-make_first-ordered] Error 2
make[2]: Leaving directory '/home/luighi/Qt-crosscompiled/qt5/qtcharts/src'
make[1]: *** [Makefile:49: sub-src-make_first] Error 2
make[1]: Leaving directory '/home/luighi/Qt-crosscompiled/qt5/qtcharts'
make: *** [Makefile:493: module-qtcharts-make_first] Error 2

Я не знаю, как добиться правильной кросс-компиляции этой версии.Не могли бы вы помочь мне решить эту проблему, пожалуйста?

1 Ответ

0 голосов
/ 03 апреля 2019

Я бы не рекомендовал способ, который Xilinx описывает в этой документации.Приведенный ниже процесс будет работать для любых целей под управлением Linux.

Если вы хотите использовать Yocto / OpenEmbedded, поддержка Qt5 может быть включена в него, а последняя версия Xilinx v2018.3 поддерживает Qt 5.9.6 вслой meta-qt5.В образ Linux, сгенерированный Yocto, легко включить такие пакеты, как qtcharts.Цель meta-toolchain-qt5 предоставляет SDK, который можно использовать с QtCreator для кросс-компиляции приложений для целевой цели.

...