Cross compile dont gen QLabel and QPushbutton and Fontconfig pre-condition
-
Hi, i try to cross-compile with windows and I finally execute a executable on my raspberry, but the application doesn't have a text and push boutton it's seems buged. I have the impression that configuration of qmake it's not rigth... but everything seems fine exepted when i compile with my compiler they don't generates the lines
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>look on the picture:
Also, my second problems is how i use fontconfig that said ERROR: Feature 'fontconfig' was enabled, but the pre-condition '!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig' failed. but I can't find the rigth folder or file... I need to configure to obtained the folders fonts. I know i can manually on the pi install, but i'm curious to know how... I try to find on the web but nothing that can help.
so any tips will be taken.
-
Hi,
Do you mean you try to cross-compile Qt or one of your application ?
-
@SGaist I try to compile one of my application with the qmake I generate, but when i do the Qlabel and QPushbutton is missing. I think my solution is active the -gtk module in my commande line but when i try I have this Error :
ERROR: Feature 'gtk3' was enabled, but the pre-condition 'features.glib && libs.gtk3' failed.
If you can help me with the syntax of configure command line.
p.s sorry if my english isn't perfect my first language is french.
-
@SGaist I try to compile one of my application with the qmake I generate, but when i do the Qlabel and QPushbutton is missing. I think my solution is active the -gtk module in my commande line but when i try I have this Error :
ERROR: Feature 'gtk3' was enabled, but the pre-condition 'features.glib && libs.gtk3' failed.
If you can help me with the syntax of configure command line.
p.s sorry if my english isn't perfect my first language is french.
@CrazyCreepy You probably need glib and gtk3 dev packages (containing the headers)
-
@CrazyCreepy You probably need glib and gtk3 dev packages (containing the headers)
@jsulm how i can do that? I try to install on raspberry and import on windows with smartty but it's doesn't work
-
How did you cross-compile Qt in the first place ?
-
I follow these two topics : forum Qt for raspberri pi 3 and tuto for cross-compilation
in first time i install with the .exe.
I also do the step by lygstate in forum for Raspberry pi 3,but i don't skip the step 15i had also had this to my command line -D__ARM_ARCH_7A__ to resovle the issue of Arm architecture.
and try many command line. to have this in final
../qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/configure -v -D__ARM_ARCH_7A__ -opensource -confirm-license -platform win32-g++ -xplatform linux-arm-gnueabi-g++ -release -device linux-rpi3-g++ -opengl es2 -sysroot C:/SysGcc/Raspberry/arm-linux-gnueabihf/sysroot -prefix /usr/local/qt5 -device-option CROSS_COMPILE=C:/SysGcc/Raspberry/bin/arm-linux-gnueabihf- -plugindir C:\SystGcc\qt-everywhere-opensource-src-5.8.0\qt-everywhere-opensource-src-5.8.0\qtbase\src\plugins\platformthemes\gtk3 -qt-pcre -gtk -qt-libpng -make libs -qt-xcb -reduce-exports -optimized-qmake -fontconfig -opensource -confirm-license -skip qtwebkit
in this path in found config_help.txt (..\qt-everywhere-opensource-src-5.8.0\qtbase) to know -gtk it's the command line to activate it.
-
Your prefix option doesn't make sense on Windows.
Also, why exactly did you need to add
__ARM_ARCH_7A__
? -
My prefix option which one it has? Except plugindir(it's for a test) all it's good. I specify ARM_ARCH_7A to fix -# error "Not supported ARM architecture". to days I try to recreate my qt-build and I found all these error... It have a solution to fix it automaticly like compilation or i need to add manually each missings files?
thanks for help
+ cd C:\SystGcc\qt-build\qtbase\config.tests && C:/SysGcc/Raspberry/bin/arm-linux-gnueabihf-g++ -fuse-ld=gold -o conftest-out conftest.cpp > c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld.gold.exe: -plugin: unknown option > c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld.gold.exe: use the --help option for usage information > collect2.exe: error: ld returned 1 exit status test config.qtbase.tests.use_gold_linker FAILED + cd C:\SystGcc\qt-build\qtbase\config.tests\common\c++1z && C:\SystGcc\qt-build\qtbase\bin\qmake.exe -qtconf C:/SystGcc/qt-build/qtbase/bin/qt.conf "CONFIG -=qt debug_and_release app_bundle lib_bundle" "CONFIG += shared console" "DEFINES+= __ARM_ARCH_7A__" "QMAKE_CFLAGS += --sysroot=C:/SysGcc/Raspberry/arm-linux-gnueabihf/sysroot" "QMAKE_CXXFLAGS += --sysroot=C:/SysGcc/Raspberry/arm-linux-gnueabihf/sysroot" "QMAKE_LFLAGS += --sysroot=C:/SysGcc/Raspberry/arm-linux-gnueabihf/sysroot" C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/common/c++1z + cd C:\SystGcc\qt-build\qtbase\config.tests\common\c++1z && set MAKEFLAGS=& C:/SystGcc/MinGW64/msys2/usr/bin/make > C:/SysGcc/Raspberry/bin/arm-linux-gnueabihf-g++ -c -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=C:/SysGcc/Raspberry/ > make: *** [Makefile:176: c++1z.obj] Error 1 test config.qtbase.tests.c++1z FAILED> C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/common/c++98default/c++98default.cpp:41:2: error: #error "compiler does not use c++11 or higher by default" > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/dbus/dbus.cpp:41:23: fatal error: dbus/dbus.h: No such file or directory > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/libudev/libudev.cpp:40:21: fatal error: libudev.h: No such file or directory > #include <libudev.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/reduce_relocs/bsymbolic_functions.c:41:4: error: #error Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129). > # error Symbolic function binding on this architecture may be broken, disabl collect2.exe: error: ld returned 1 exit status No such file or director > C:/SysGcc/Raspberry/bin/arm-linux-gnueabihf-g++ -L -Wl,-rpath-link,C:/SysGcc/Raspberry/arm-linux-gnueabihf/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,C:/SysGcc/Raspberry/arm-linux-gnueabihf/sysroot/lib/arm-linux-gnueabihf -mfloat -abi=hard --sysroot=C:/SysGcc/Raspberry/arm-linux-gnueabihf/sysroot --sysroot=C:/SysGcc/Raspberry/arm-linux-gnueabihf/sysroot -Wl,-O1 -o dlopen dlopen.obj > dlopen.obj: In function `main': > dlopen.cpp:(.text.startup+0xc): undefined reference to `dlopen' > collect2.exe: error: ld returned 1 exit status > make: *** [Makefile:64: dlopen] Error 1 > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/icu/icu.cpp:40:28: fatal error: unicode/utypes.h: No such file or directory > #include <unicode/utypes.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/icu/icu.cpp:40:28: fatal error: unicode/utypes.h: No such file or directory > #include <unicode/utypes.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/doubleconversion/doubleconversion.cpp:40:49: fatal error: double-conversion/double-conversion.h: No such file or directory > #include <double-conversion/double-conversion.h> C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/openssl/openssl.cpp:40:30: fatal error: openssl/opensslv.h: No such file or directory > #include <openssl/opensslv.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/db2/db2.cpp:40:20: fatal error: sqlcli.h: No such file or directory > #include <sqlcli.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/ibase/ibase.cpp:40:19: fatal error: ibase.h: No such file or directory > #include <ibase.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/mysql/mysql.cpp:43:19: fatal error: mysql.h: No such file or directory > #include "mysql.h" C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/mysql/mysql.cpp:43:19: fatal error: mysql.h: No such file or directory > #include "mysql.h" > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/oci/oci.cpp:40:17: fatal error: oci.h: No such file or directory > #include <oci.h> C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/odbc/odbc.cpp:43:17: fatal error: sql.h: No such file or directory > #include <sql.h> C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/psql/psql.cpp:40:22: fatal error: libpq-fe.h: No such file or directory > #include "libpq-fe.h" > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/sqlite2/sqlite2.cpp:40:20: fatal error: sqlite.h: No such file or directory > #include <sqlite.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/tds/tds.cpp:40:22: fatal error: sybfront.h: No such file or directory > #include <sybfront.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/qpa/xcb/xcb.cpp:40:21: fatal error: xcb/xcb.h: No such file or directory > #include <xcb/xcb.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/qpa/xcb-xlib/xcb-xlib.cpp:40:21: fatal error: xcb/xcb.h: No such file or directory > #include <xcb/xcb.h> C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/qpa/eglfs-egldevice/eglfs-egldevice.cpp: In function 'int main(int, char**)': > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/qpa/eglfs-egldevice/eglfs-egldevice.cpp:45:5: error: 'EGLDeviceEXT' was not declared in this scope > EGLDeviceEXT device = 0; > ^ > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/qpa/eglfs-egldevice/eglfs-egldevice.cpp:46:5: error: 'EGLStreamKHR' was not declared in this scope > EGLStreamKHR stream = 0; > ^ > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/qpa/eglfs-egldevice/eglfs-egldevice.cpp:47:5: error: 'EGLOutputLayerEXT' was not declared in this scope > EGLOutputLayerEXT layer = 0; > ^ > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/qpa/eglfs-egldevice/eglfs-egldevice.cpp:48:12: error: 'EGL_DRM_CRTC_EXT' was not declared in this scope > return EGL_DRM_CRTC_EXT; > ^ > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.cpp: In function 'int main(int, char**)': > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.cpp:47:5: error: 'mali_native_window' was not declared in this scope > mali_native_window *w = 0; > ^ > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.cpp:47:25: error: 'w' was not declared in this scope > mali_native_window *w = 0; > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/qpa/eglfs-viv/eglfs-viv.cpp:41:28: fatal error: EGL/eglvivante.h: No such file or directory > #include <EGL/eglvivante.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/freetype/freetype.cpp:40:22: fatal error: ft2build.h: No such file or directory > #include <ft2build.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/qpa/kms/kms.cpp:43:25: fatal error: xf86drmMode.h: No such file or directory > #include <xf86drmMode.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/opengles3/opengles3.cpp:44:25: fatal error: GLES3/gl3.h: No such file or directory > #include <GLES3/gl3.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/harfbuzz/harfbuzz.cpp:40:25: fatal error: harfbuzz/hb.h: No such file or directory > #include <harfbuzz/hb.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/tslib/tslib.cpp:40:19: fatal error: tslib.h: No such file or directory > #include <tslib.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/x11/xinput2/xinput2.cpp:40:22: fatal error: X11/Xlib.h: No such file or directory > #include <X11/Xlib.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtbase/config.tests/unix/cups/cups.cpp:40:23: fatal error: cups/cups.h: No such file or directory > #include <cups/cups.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtdeclarative/config.tests/d3d12/d3d12.cpp:40:19: fatal error: d3d12.h: No such file or directory > #include <d3d12.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtgamepad/config.tests/sdl/main.cpp:37:17: fatal error: SDL.h: No such file or directory > #include <SDL.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qt3d/config.tests/assimp/main.cpp:29:28: fatal error: assimp/cimport.h: No such file or directory > #include <assimp/cimport.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtwayland/config.tests/wayland/main.cpp:41:29: fatal error: wayland-version.h: No such file or directory > #include <wayland-version.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtwayland/config.tests/wayland_egl/main.cpp:41:25: fatal error: wayland-egl.h: No such file or directory > #include <wayland-egl.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtwayland/config.tests/wayland/main.cpp:41:29: fatal error: wayland-version.h: No such file or directory > #include <wayland-version.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtconnectivity/config.tests/bluez/main.cpp:29:33: fatal error: bluetooth/bluetooth.h: No such file or directory > #include <bluetooth/bluetooth.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtmultimedia/config.tests/alsa/alsatest.cpp:29:28: fatal error: alsa/asoundlib.h: No such file or directory > #include <alsa/asoundlib.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtmultimedia/config.tests/gpu_vivante/main.cpp:29:23: fatal error: GLES2/gl2.h: No such file or directory > #include <GLES2/gl2.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtmultimedia/config.tests/linux_v4l/main.cpp:31:14: warning: unused parameter 'argc' [-Wunused-parameter] > int main(int argc, char** argv) > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtmultimedia/config.tests/linux_v4l/main.cpp:31:27: warning: unused parameter 'argv' [-Wunused-parameter] > int main(int argc, char** argv) > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtmultimedia/config.tests/openal/main.cpp:32:19: fatal error: AL/al.h: No such file or directory > #include <AL/al.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtlocation/config.tests/winrt/main.cpp:30:28: fatal error: windows.system.h: No such file or directory > #include <windows.system.h> > C:/SystGcc/qt-everywhere-opensource-src-5.8.0/qt-everywhere-opensource-src-5.8.0/qtwebengine/tools/qmake/config.tests/alsa/alsatest.cpp:29:28: fatal error: alsa/asoundlib.h: No such file or directory > #include <alsa/asoundlib.h>
-
Don't try to fix every error logged. Some are just detection tests that if failed won't influence the rest e.g. if you don't have Oracle library you won't have the matching driver built but that's not a problem per se.
You should rather look at why the ARM architecture is no found.
-
where did you see that arm is not found?
-
I found in ..\qt-everywhere-opensource-src-5.8.0\qtbase\lib a readme that said
If this directory is empty, you probably forgot to compile the Qt library.my question is did I need to compile qt lib before do generate my qt-built?
-
Sorry, I meant not supported.
-
You have already answer this in this post. it's because qtscript module it's obsoleted.
-
I don't see the relation here with the QtScript module.
-
with the qtscript module you need to specify the arm achitecture or to skip qtscript other else we have a Error that said he can't support Arm achitecture
-
So this thread is solved ?
-
No because this is what i get on my raspberry pi:
and that was what I want to get:
how i can fix it?
-
Good question that requires that you provide more information like warning/error messages your application is generating. Type of backend used to start your application etc.
-
Good question that requires that you provide more information like warning/error messages your application is generating. Type of backend used to start your application etc.
@SGaist this i why i'm so confused and i call help... they doesn't have any warnning or error.