Unsolved QT 5.12.4, qtdeclarative qml.pro Project ERROR: Library 'libdl' is not defined. linux-beagleboard-g++
-
Hi,
Over a very long process almost to the end I an getting this. literraly cannot get over it.
The error at the end of make-ing
make[5]: Leaving directory '/BOARDS/QTFTF/qt5/qtsvg/src/plugins/iconengines/svgiconengine' make[4]: Leaving directory '/BOARDS/QTFTF/qt5/qtsvg/src/plugins/iconengines' make[3]: Leaving directory '/BOARDS/QTFTF/qt5/qtsvg/src/plugins' make[2]: Leaving directory '/BOARDS/QTFTF/qt5/qtsvg/src' make[1]: Leaving directory '/BOARDS/QTFTF/qt5/qtsvg' cd qtdeclarative/ && ( test -e Makefile || /BOARDS/QTFTF/qt5/qtbase/bin/qmake -o Makefile /BOARDS/QTFTF/qt5/qtdeclarative/qtdeclarative.pro ) && make -f Makefile make[1]: Entering directory '/BOARDS/QTFTF/qt5/qtdeclarative' cd src/ && ( test -e Makefile || /BOARDS/QTFTF/qt5/qtbase/bin/qmake -o Makefile /BOARDS/QTFTF/qt5/qtdeclarative/src/src.pro ) && make -f Makefile make[2]: Entering directory '/BOARDS/QTFTF/qt5/qtdeclarative/src' cd qml/ && ( test -e Makefile || /BOARDS/QTFTF/qt5/qtbase/bin/qmake -o Makefile /BOARDS/QTFTF/qt5/qtdeclarative/src/qml/qml.pro ) && make -f Makefile Project MESSAGE: LIBRARY:[/BOARDS/QTFTF/ROOTFS/usr/lib /BOARDS/QTFTF/ROOTFS/usr/lib/arm-linux-gnueabihf] Project MESSAGE: perl -w /BOARDS/QTFTF/qt5/qtbase/bin/syncqt.pl -module QtQml -version 5.12.5 -outdir /BOARDS/QTFTF/qt5/qtdeclarative -builddir /BOARDS/QTFTF/qt5/qtdeclarative /BOARDS/QTFTF/qt5/qtdeclarative <srcbase> = /BOARDS/QTFTF/qt5/qtdeclarative <bldbase> = /BOARDS/QTFTF/qt5/qtdeclarative <outbase> = /BOARDS/QTFTF/qt5/qtdeclarative Project ERROR: Library 'libdl' is not defined. Makefile:54: recipe for target 'sub-qml-make_first-ordered' failed make[2]: *** [sub-qml-make_first-ordered] Error 3 make[2]: Leaving directory '/BOARDS/QTFTF/qt5/qtdeclarative/src' Makefile:49: recipe for target 'sub-src-make_first' failed make[1]: *** [sub-src-make_first] Error 2 make[1]: Leaving directory '/BOARDS/QTFTF/qt5/qtdeclarative' Makefile:299: recipe for target 'module-qtdeclarative-make_first' failed make: *** [module-qtdeclarative-make_first] Error 2
I am extracting the error line during the make and execute it manually.
Environment details:
PATH
/BOARDS/QTFTF/qt5$ echo $PATH /BOARDS/QTFTF/TC741/bin:/BOARDS/QTFTF/ROOTFS/lib/arm-linux-gnueabihf:/BOARDS/QTFTF/ROOTFS/usr/lib:/BOARDS/QTFTF/TC741/bin:/BOARDS/QTFTF/ROOTFS/lib/arm-linux-gnueabihf:/BOARDS/QTFTF/ROOTFS/usr/lib:/BOARDS/QTFTF/TC741/bin:=/BOARDS/QTFTF/ROOTFS/lib/arm-linux-gnueabihf:=/BOARDS/QTFTF/ROOTFS/usr/lib
ROOTFS
marius@pegpc:/BOARDS/QTFTF/qt5$ echo $ROOT_FS /BOARDS/QTFTF/ROOTFS
libdl onto TC and ROOTFS
lrwxrwxrwx 1 marius marius 46 Aug 6 15:18 ./ROOTFS/usr/lib/arm-linux-gnueabihf/libdl.so -> ../../../lib/arm-linux-gnueabihf/libdl-2.24.so lrwxrwxrwx 1 marius marius 43 Aug 6 15:17 ./ROOTFS/usr/lib/libdl.so -> ../../lib/arm-linux-gnueabihf/libdl-2.24.so lrwxrwxrwx 1 marius marius 20 Jan 22 2019 ./TC741/arm-linux-gnueabihf/libc/usr/lib/libdl.so -> ../../lib/libdl.so.2 marius@pegpc:/BOARDS/QTFTF$ ls -la ./TC741/arm-linux-gnueabihf/libc/usr/lib/libdl.so lrwxrwxrwx 1 marius marius 20 Jan 22 2019 ./TC741/arm-linux-gnueabihf/libc/usr/lib/libdl.so -> ../../lib/libdl.so.2 marius@pegpc:/BOARDS/QTFTF$ ls -la ./ROOTFS/usr/lib/libdl.so lrwxrwxrwx 1 marius marius 43 Aug 6 15:17 ./ROOTFS/usr/lib/libdl.so -> ../../lib/arm-linux-gnueabihf/libdl-2.24.so marius@pegpc:/BOARDS/QTFTF$ ls -la ./ROOTFS/usr/lib/arm-linux-gnueabihf/libdl.so lrwxrwxrwx 1 marius marius 46 Aug 6 15:18 ./ROOTFS/usr/lib/arm-linux-gnueabihf/libdl.so -> ../../../lib/arm-linux-gnueabihf/libdl-2.24.so marius@pegpc:/BOARDS/QTFTF$
Looks all good !
Then manually trying to qmake
cd /BOARDS/QTFTF/qt5/qtdeclarative/src/qml /BOARDS/QTFTF/qt5/qtbase/bin/qmake -o Makefile ./qml.pro Project MESSAGE: LIBRARY:[/BOARDS/QTFTF/ROOTFS/usr/lib /BOARDS/QTFTF/ROOTFS/usr/lib/arm-linux-gnueabihf] Project MESSAGE: perl -w /BOARDS/QTFTF/qt5/qtbase/bin/syncqt.pl -module QtQml -version 5.12.5 -outdir /BOARDS/QTFTF/qt5/qtdeclarative -builddir /BOARDS/QTFTF/qt5/qtdeclarative /BOARDS/QTFTF/qt5/qtdeclarative <srcbase> = /BOARDS/QTFTF/qt5/qtdeclarative <bldbase> = /BOARDS/QTFTF/qt5/qtdeclarative <outbase> = /BOARDS/QTFTF/qt5/qtdeclarative Project ERROR: Library 'libdl' is not defined.
I quite tweaked the qml.pro @ *declaratives/src/qml
# mco-mco LIBS += $$(ROOT_FS)/usr/lib LIBS += $$(ROOT_FS)/usr/lib/arm-linux-gnueabihf message("----------------------------------------------------") message(" ROOTFS: [$$(ROOT_FS)]") message(" LIBRARY: [$$LIBS]") exists( $(ROOT_FS)/usr/lib/libdl.so ) { message( "found libdl in $(ROOT_FS)/usr/lib/" ) }
The attempt to generate the Makefile
/BOARDS/QTFTF/qt5/qtbase/bin/qmake -o Makefile ./qml.pro Project MESSAGE: ---------------------------------------------------- Project MESSAGE: ROOTFS: [/BOARDS/QTFTF/ROOTFS] Project MESSAGE: LIBRARY: [/BOARDS/QTFTF/ROOTFS/usr/lib /BOARDS/QTFTF/ROOTFS/usr/lib/arm-linux-gnueabihf] Project MESSAGE: found libdl in /BOARDS/QTFTF/ROOTFS/usr/lib/ <= Project MESSAGE: perl -w /BOARDS/QTFTF/qt5/qtbase/bin/syncqt.pl -module QtQml -version 5.12.5 -outdir /BOARDS/QTFTF/qt5/qtdeclarative -builddir /BOARDS/QTFTF/qt5/qtdeclarative /BOARDS/QTFTF/qt5/qtdeclarative <srcbase> = /BOARDS/QTFTF/qt5/qtdeclarative <bldbase> = /BOARDS/QTFTF/qt5/qtdeclarative <outbase> = /BOARDS/QTFTF/qt5/qtdeclarative Project ERROR: Library 'libdl' is not defined. <<<=====
Tough the symbolic link is well alive
marius@pegpc:/BOARDS/QTFTF/qt5/qtdeclarative/src/qml$ ls -la /BOARDS/QTFTF/ROOTFS/usr/lib/libdl.so lrwxrwxrwx 1 marius marius 43 Aug 6 15:17 /BOARDS/QTFTF/ROOTFS/usr/lib/libdl.so -> ../../lib/arm-linux-gnueabihf/libdl-2.24.so marius@pegpc:/BOARDS/QTFTF/qt5/qtdeclarative/src/qml$ readelf -h /BOARDS/QTFTF/ROOTFS/usr/lib/libdl.so ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: DYN (Shared object file) Machine: ARM Version: 0x1 Entry point address: 0x960 Start of program headers: 52 (bytes into file) Start of section headers: 8684 (bytes into file) Flags: 0x5000400, Version5 EABI, hard-float ABI Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 6 Size of section headers: 40 (bytes) Number of section headers: 28 Section header string table index: 27
Any help is appreciated.
The configure command:
./configure -platform linux-g++ --enable-shared --enable-static -opengl es2 -device linux-beagleboard-g++ -device-option CROSS_COMPILE=$BBB_TC -sysroot $ROOT_FS -opensource -confirm-license -make libs -prefix $ROOT_FS -extprefix $ROOT_FS -hostprefix $ROOT_FS -v -no-gbm -skip qtserialbus -skip qtscxml -skip qtscript -skip qtcharts -skip qt3d -skip qtdatavis3d -skip qtcanvas3d -skip qtgamepad -skip qtvirtualkeyboard -skip qtwayland -skip qtwebengine -skip qtwebchannel -skip qtwebglplugin -recheck-all -no-qml-debug -nomake examples -nomake tests -no-pulseaudio -no-alsa
-
@comarius said in QT 5.12.4, qtdeclarative qml.pro Project ERROR: Library 'libdl' is not defined. linux-beagleboard-g++:
Hi,
Over a very long process almost to the end I an getting this. literraly cannot get over it.
The error at the end of make-ing
make[5]: Leaving directory '/BOARDS/QTFTF/qt5/qtsvg/src/plugins/iconengines/svgiconengine' make[4]: Leaving directory '/BOARDS/QTFTF/qt5/qtsvg/src/plugins/iconengines' make[3]: Leaving directory '/BOARDS/QTFTF/qt5/qtsvg/src/plugins' make[2]: Leaving directory '/BOARDS/QTFTF/qt5/qtsvg/src' make[1]: Leaving directory '/BOARDS/QTFTF/qt5/qtsvg' cd qtdeclarative/ && ( test -e Makefile || /BOARDS/QTFTF/qt5/qtbase/bin/qmake -o Makefile /BOARDS/QTFTF/qt5/qtdeclarative/qtdeclarative.pro ) && make -f Makefile make[1]: Entering directory '/BOARDS/QTFTF/qt5/qtdeclarative' cd src/ && ( test -e Makefile || /BOARDS/QTFTF/qt5/qtbase/bin/qmake -o Makefile /BOARDS/QTFTF/qt5/qtdeclarative/src/src.pro ) && make -f Makefile make[2]: Entering directory '/BOARDS/QTFTF/qt5/qtdeclarative/src' cd qml/ && ( test -e Makefile || /BOARDS/QTFTF/qt5/qtbase/bin/qmake -o Makefile /BOARDS/QTFTF/qt5/qtdeclarative/src/qml/qml.pro ) && make -f Makefile Project MESSAGE: LIBRARY:[/BOARDS/QTFTF/ROOTFS/usr/lib /BOARDS/QTFTF/ROOTFS/usr/lib/arm-linux-gnueabihf] Project MESSAGE: perl -w /BOARDS/QTFTF/qt5/qtbase/bin/syncqt.pl -module QtQml -version 5.12.5 -outdir /BOARDS/QTFTF/qt5/qtdeclarative -builddir /BOARDS/QTFTF/qt5/qtdeclarative /BOARDS/QTFTF/qt5/qtdeclarative <srcbase> = /BOARDS/QTFTF/qt5/qtdeclarative <bldbase> = /BOARDS/QTFTF/qt5/qtdeclarative <outbase> = /BOARDS/QTFTF/qt5/qtdeclarative Project ERROR: Library 'libdl' is not defined. Makefile:54: recipe for target 'sub-qml-make_first-ordered' failed make[2]: *** [sub-qml-make_first-ordered] Error 3 make[2]: Leaving directory '/BOARDS/QTFTF/qt5/qtdeclarative/src' Makefile:49: recipe for target 'sub-src-make_first' failed make[1]: *** [sub-src-make_first] Error 2 make[1]: Leaving directory '/BOARDS/QTFTF/qt5/qtdeclarative' Makefile:299: recipe for target 'module-qtdeclarative-make_first' failed make: *** [module-qtdeclarative-make_first] Error 2
I am extracting the error line during the make and execute it manually.
Environment details:
PATH
/BOARDS/QTFTF/qt5$ echo $PATH /BOARDS/QTFTF/TC741/bin:/BOARDS/QTFTF/ROOTFS/lib/arm-linux-gnueabihf:/BOARDS/QTFTF/ROOTFS/usr/lib:/BOARDS/QTFTF/TC741/bin:/BOARDS/QTFTF/ROOTFS/lib/arm-linux-gnueabihf:/BOARDS/QTFTF/ROOTFS/usr/lib:/BOARDS/QTFTF/TC741/bin:=/BOARDS/QTFTF/ROOTFS/lib/arm-linux-gnueabihf:=/BOARDS/QTFTF/ROOTFS/usr/lib
ROOTFS
marius@pegpc:/BOARDS/QTFTF/qt5$ echo $ROOT_FS /BOARDS/QTFTF/ROOTFS
libdl onto TC and ROOTFS
lrwxrwxrwx 1 marius marius 46 Aug 6 15:18 ./ROOTFS/usr/lib/arm-linux-gnueabihf/libdl.so -> ../../../lib/arm-linux-gnueabihf/libdl-2.24.so lrwxrwxrwx 1 marius marius 43 Aug 6 15:17 ./ROOTFS/usr/lib/libdl.so -> ../../lib/arm-linux-gnueabihf/libdl-2.24.so lrwxrwxrwx 1 marius marius 20 Jan 22 2019 ./TC741/arm-linux-gnueabihf/libc/usr/lib/libdl.so -> ../../lib/libdl.so.2 marius@pegpc:/BOARDS/QTFTF$ ls -la ./TC741/arm-linux-gnueabihf/libc/usr/lib/libdl.so lrwxrwxrwx 1 marius marius 20 Jan 22 2019 ./TC741/arm-linux-gnueabihf/libc/usr/lib/libdl.so -> ../../lib/libdl.so.2 marius@pegpc:/BOARDS/QTFTF$ ls -la ./ROOTFS/usr/lib/libdl.so lrwxrwxrwx 1 marius marius 43 Aug 6 15:17 ./ROOTFS/usr/lib/libdl.so -> ../../lib/arm-linux-gnueabihf/libdl-2.24.so marius@pegpc:/BOARDS/QTFTF$ ls -la ./ROOTFS/usr/lib/arm-linux-gnueabihf/libdl.so lrwxrwxrwx 1 marius marius 46 Aug 6 15:18 ./ROOTFS/usr/lib/arm-linux-gnueabihf/libdl.so -> ../../../lib/arm-linux-gnueabihf/libdl-2.24.so marius@pegpc:/BOARDS/QTFTF$
Looks all good !
Then manually trying to qmake
cd /BOARDS/QTFTF/qt5/qtdeclarative/src/qml /BOARDS/QTFTF/qt5/qtbase/bin/qmake -o Makefile ./qml.pro Project MESSAGE: LIBRARY:[/BOARDS/QTFTF/ROOTFS/usr/lib /BOARDS/QTFTF/ROOTFS/usr/lib/arm-linux-gnueabihf] Project MESSAGE: perl -w /BOARDS/QTFTF/qt5/qtbase/bin/syncqt.pl -module QtQml -version 5.12.5 -outdir /BOARDS/QTFTF/qt5/qtdeclarative -builddir /BOARDS/QTFTF/qt5/qtdeclarative /BOARDS/QTFTF/qt5/qtdeclarative <srcbase> = /BOARDS/QTFTF/qt5/qtdeclarative <bldbase> = /BOARDS/QTFTF/qt5/qtdeclarative <outbase> = /BOARDS/QTFTF/qt5/qtdeclarative Project ERROR: Library 'libdl' is not defined.
I quite tweaked the qml.pro @ *declaratives/src/qml
# mco-mco LIBS += $$(ROOT_FS)/usr/lib LIBS += $$(ROOT_FS)/usr/lib/arm-linux-gnueabihf message("----------------------------------------------------") message(" ROOTFS: [$$(ROOT_FS)]") message(" LIBRARY: [$$LIBS]") exists( $(ROOT_FS)/usr/lib/libdl.so ) { message( "found libdl in $(ROOT_FS)/usr/lib/" ) }
The attempt to generate the Makefile
/BOARDS/QTFTF/qt5/qtbase/bin/qmake -o Makefile ./qml.pro Project MESSAGE: ---------------------------------------------------- Project MESSAGE: ROOTFS: [/BOARDS/QTFTF/ROOTFS] Project MESSAGE: LIBRARY: [/BOARDS/QTFTF/ROOTFS/usr/lib /BOARDS/QTFTF/ROOTFS/usr/lib/arm-linux-gnueabihf] Project MESSAGE: found libdl in /BOARDS/QTFTF/ROOTFS/usr/lib/ <= Project MESSAGE: perl -w /BOARDS/QTFTF/qt5/qtbase/bin/syncqt.pl -module QtQml -version 5.12.5 -outdir /BOARDS/QTFTF/qt5/qtdeclarative -builddir /BOARDS/QTFTF/qt5/qtdeclarative /BOARDS/QTFTF/qt5/qtdeclarative <srcbase> = /BOARDS/QTFTF/qt5/qtdeclarative <bldbase> = /BOARDS/QTFTF/qt5/qtdeclarative <outbase> = /BOARDS/QTFTF/qt5/qtdeclarative Project ERROR: Library 'libdl' is not defined. <<<=====
Tough the symbolic link is well alive
marius@pegpc:/BOARDS/QTFTF/qt5/qtdeclarative/src/qml$ ls -la /BOARDS/QTFTF/ROOTFS/usr/lib/libdl.so lrwxrwxrwx 1 marius marius 43 Aug 6 15:17 /BOARDS/QTFTF/ROOTFS/usr/lib/libdl.so -> ../../lib/arm-linux-gnueabihf/libdl-2.24.so marius@pegpc:/BOARDS/QTFTF/qt5/qtdeclarative/src/qml$ readelf -h /BOARDS/QTFTF/ROOTFS/usr/lib/libdl.so ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: DYN (Shared object file) Machine: ARM Version: 0x1 Entry point address: 0x960 Start of program headers: 52 (bytes into file) Start of section headers: 8684 (bytes into file) Flags: 0x5000400, Version5 EABI, hard-float ABI Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 6 Size of section headers: 40 (bytes) Number of section headers: 28 Section header string table index: 27
Any help is appreciated.
The configure command:
./configure -platform linux-g++ --enable-shared --enable-static -opengl es2 -device linux-beagleboard-g++ -device-option CROSS_COMPILE=$BBB_TC -sysroot $ROOT_FS -opensource -confirm-license -make libs -prefix $ROOT_FS -extprefix $ROOT_FS -hostprefix $ROOT_FS -v -no-gbm -skip qtserialbus -skip qtscxml -skip qtscript -skip qtcharts -skip qt3d -skip qtdatavis3d -skip qtcanvas3d -skip qtgamepad -skip qtvirtualkeyboard -skip qtwayland -skip qtwebengine -skip qtwebchannel -skip qtwebglplugin -recheck-all -no-qml-debug -nomake examples -nomake tests -no-pulseaudio -no-alsa
I hack it. See it at
https://comarius.blogspot.com/2019/07/beaglebone-black-egl-and-open-gl.html -
RESOLVED.
The cross compiler way was a completely utterly mess and a waste of time.
I switched to chroot into the SDcard Root IOT deian image and dit it from there. It went quite well.Here is the procedure.
-
@comarius glad you figured it out. Please don't forget to mark your post as solved. Thanks
-
@comarius Have same problem with qt5-5.12.6, It has no hacky soliution. During configuration your build didn't find libdl, and QMAKE_LIBS_LIBDL undefined. In my case thats was cos of cross-compile (glibc libriaries not in sysroot).
This commit resolves this problem: https://codereview.qt-project.org/c/qt/qtbase/+/273639 . But only for 5.14 branch. You can simply apply it for 5.12, as i did.
Without patch, configuration system look for /usr/lib64/libdl.so, after patch, for -ldl, as in 5.11 was.
Hopefully this will help anyone not to spend half a day searching for a cause of problem :) -