1.5w+
社区成员
configure 时最后提示如下问题(configre 指令及其它信息后续提供):
ERROR: Feature 'egl' was enabled, but the pre-condition '(features.opengl || features.openvg) && (features.angle || libs.egl)' failed.
ERROR: Feature 'eglfs' was enabled, but the pre-condition '!config.android && !config.darwin && !config.win32 && features.egl' failed.
查 config.log 文件, egl 无法支持是因为如下:
looking for library egl
Trying source 0 (type pkgConfig) of library egl ...
+ PKG_CONFIG_SYSROOT_DIR=/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux PKG_CONFIG_LIBDIR=/home/leo/qtSrcCompile/libIns/mtdev/lib/pkgconfig:/home/leo/qtSrcCompile/libIns/zlib/lib/pkgconfig:/home/leo/qtSrcCompile/libIns/SDL2-2.0.14/lib/pkgconfig:/home/leo/qtSrcCompile/libIns/tslib-1.22/lib/pkgconfig:/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/lib/pkgconfig:/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/share/pkgconfig:/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/lib/aarch64-poky-linux/pkgconfig /usr/bin/pkg-config --exists --silence-errors egl
pkg-config did not find package.
=> source produced no result.
Trying source 1 (type makeSpec) of library egl ...
+ cd /home/leo/qtSrcCompile/qt-src-5.9.8/config.tests/egl && PKG_CONFIG_SYSROOT_DIR=/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux PKG_CONFIG_LIBDIR=/home/leo/qtSrcCompile/libIns/mtdev/lib/pkgconfig:/home/leo/qtSrcCompile/libIns/zlib/lib/pkgconfig:/home/leo/qtSrcCompile/libIns/SDL2-2.0.14/lib/pkgconfig:/home/leo/qtSrcCompile/libIns/tslib-1.22/lib/pkgconfig:/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/lib/pkgconfig:/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/share/pkgconfig:/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/lib/aarch64-poky-linux/pkgconfig /home/leo/qtSrcCompile/qt-src-5.9.8/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'QMAKE_LIBDIR += /home/leo/qtSrcCompile/libIns/tslib-1.22/lib /home/leo/qtSrcCompile/libIns/zlib/lib /opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/lib64' 'INCLUDEPATH += /home/leo/qtSrcCompile/libIns/tslib-1.22/include /home/leo/qtSrcCompile/libIns/zlib/include /opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/include' "QMAKE_CFLAGS += --sysroot=/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux" "QMAKE_CXXFLAGS += --sysroot=/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux" "QMAKE_LFLAGS += --sysroot=/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux" -early "CONFIG += cross_compile" 'LIBS += -lEGL' /home/leo/qtSrcCompile/qt-src-5.9.8/config.tests/egl
+ cd /home/leo/qtSrcCompile/qt-src-5.9.8/config.tests/egl && MAKEFLAGS= /usr/bin/make
> aarch64-poky-linux-g++ -c -pipe --sysroot=/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux --sysroot=/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux -O2 -march=armv8-a -O2 -march=armv8-a -O2 -w -fPIC -I. -I/home/leo/qtSrcCompile/libIns/tslib-1.22/include -I/home/leo/qtSrcCompile/libIns/zlib/include -I/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/include -I/home/ecd_1403046_182762140718/source/tslib1.22/include -I/home/ecd_1403046_182762140718/source/sqlite3/sqlite3Ins/include -I/home/leo/qtSrcCompile/qt-src-5.9.8/qtbase/mkspecs/linux-aarch64-gnu-g++ -o main.o main.cpp
> In file included from /opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/include/EGL/egl.h:39:0,
> from main.cpp:2:
> /opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/include/EGL/eglplatform.h:144:10: fatal error: X11/Xlib.h: No such file or directory
> #include <X11/Xlib.h>
> ^~~~~~~~~~~~
> compilation terminated.
> Makefile:189: recipe for target 'main.o' failed
> make: *** [main.o] Error 1
=> source failed verification.
test config.gui.libraries.egl FAILED
尝试: 在 aarch64 SDK 安装目录中没有找到文件 Xlib.h.
关键是我的 configure 配置是不支持 X11 的,为什么会自动检测用到它?请问大家有没有遇到类似的情况,或者有什么建议?多谢先!
configure 指令如下:
./configure -opensource -release --confirm-license -pkg-config \
-no-use-gold-linker \
-xplatform linux-aarch64-gnu-g++ \
-device-option CROSS_COMPILE=/opt/fsl-imx-wayland/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux- \
-sysroot /opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux \
-nomake examples -nomake tests \
-prefix /home/leo/qtSrcCompile/libIns/qt5.9.8 \
-extprefix /home/leo/qtSrcCompile/libIns/qt5.9.8 \
-hostprefix /home/leo/qtSrcCompile/libIns/qt5.9.8host \
-shared \
-c++std c++11 \
-opengl es2 \
-pch \
-make libs \
-no-gbm \
-no-glib \
-qt-libpng \
-qt-libjpeg \
-qt-harfbuzz \
-qt-freetype \
-tslib \
-egl -eglfs \
-no-directfb -no-xcb -no-linuxfb \
-I/home/leo/qtSrcCompile/libIns/tslib-1.22/include \
-L/home/leo/qtSrcCompile/libIns/tslib-1.22/lib \
-I/home/leo/qtSrcCompile/libIns/zlib/include \
-L/home/leo/qtSrcCompile/libIns/zlib/lib \
-I/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/include \
-L/opt/fsl-imx-wayland/4.14-sumo/sysroots/aarch64-poky-linux/usr/lib64
对应 eglplatform.h:144 行如下:
#elif defined(__unix__) || defined(USE_X11)
#if defined(EGL_API_DFB)
/* Vivante DFB */
typedef void * EGLNativeDisplayType;
typedef void * EGLNativeWindowType;
typedef void * EGLNativePixmapType;
#elif defined(EGL_API_FB)
/* Vivante FBDEV */
typedef void * EGLNativeDisplayType;
typedef void * EGLNativeWindowType;
typedef void * EGLNativePixmapType;
#elif defined(EGL_API_NULLWS)
typedef void * EGLNativeDisplayType;
typedef void * EGLNativeWindowType;
typedef void * EGLNativePixmapType;
#else
/* X11 (tentative) */
#include <X11/Xlib.h>
#include <X11/Xutil.h>
typedef Display *EGLNativeDisplayType;
typedef Pixmap EGLNativePixmapType;
typedef Window EGLNativeWindowType;
#endif
补充说明:qtbase/mkspecs/linux-aarch64-gnu-g++/下的 qmake.conf 文件对应的修改也已经做了。