У меня было приложение, написанное на Qt5.12.2, которое использует QCharts для построения некоторых сигналов. Я хочу, чтобы это приложение работало на плате на основе Zynq, особенно на плате Zybo от Xilinx. Однако предоставленная информация для Xilinx относится только к Qt версии 5.4: 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
Я не знаю, как добиться правильной кросс-компиляции этой версии. Не могли бы вы помочь мне решить эту проблему, пожалуйста?
items/qquickclipnode_p.h:57:30: error: comdat-local function called by void QQuickWindowIncubationController::incubate() outside its comdat class Q_QUICK_PRIVATE_EXPORT QQuickDefaultClipNode : public QSGClipNode
Это происходит в версии Qt 5.12, Qt 5.9 и, по-видимому, также в Qt 5.11, как показано в открытом потоке на форуме Xilinx: forums.xilinx.com/t5/Embedded-Development-Tools/ - person Luighi Viton-Zorrilla   schedule 02.04.2019items/qquickclipnode_p.h:57:30: error: comdat-local function called by void QQuickWindowIncubationController::incubate() outside its comdat class Q_QUICK_PRIVATE_EXPORT QQuickDefaultClipNode : public QSGClipNode
. Судя по всему, ни один модуль, который зависит от этого элемента, не может быть скомпилирован. - person Luighi Viton-Zorrilla   schedule 02.04.2019qtHaveModule(quick) { SUBDIRS += chartsqml2 }
, а также удаляя директорию chartsqml2 которая может вызвать проблемы и компилировать проект, я думаю что Qt Charts не будет использовать QML - person eyllanesc   schedule 02.04.2019