Search code examples
qtg++qt5beagleboneblack

libQt5SerialPort.so.5: undefined reference to `udev_device_get_devnode@LIBUDEV_183 when cross-building Qt-everywhere-src-5.13.1 for BeagleBone Black


I am new to using Qt (and building it). I have searched on the web and landed at multiple ways of cross-building the Qt src for Beaglebone Black, of multiple versions, but haven't been successful to build any of those.

I am following the guide from one of the GitHub pages here.

The configure and make commands worked fine and didn't give any errors (just some warnings). But when I tried "make install", the build continued until I was bombarded with a bunch of errors for with the 'libQt5SerialPort.so.5' and fails ultimately with 'Error 1' and 'Error 2'.

Here's the terminal log which give the undefined reference errors:

make[4]: Entering directory '/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialbus/src/tools/canbusutil'
/home/yash/BBB/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -mfloat-abi=hard --sysroot=/home/yash/BBB/sysroot -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../lib -Wl,-rpath-link,/home/yash/BBB/qt-everywhere-src-5.13.1/qtbase/lib -Wl,-rpath-link,/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib -o ../../../bin/canbusutil .obj/main.o .obj/readtask.o .obj/canbusutil.o .obj/sigtermhandler.o .obj/moc_readtask.o .obj/moc_canbusutil.o .obj/moc_sigtermhandler.o   /home/yash/BBB/qt-everywhere-src-5.13.1/qtserialbus/lib/libQt5SerialBus.so /home/yash/BBB/qt-everywhere-src-5.13.1/qtbase/lib/libQt5Core.so -lpthread  -lrt -lpthread -ldl 
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_list_entry_get_next@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_new@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_device_new_from_syspath@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_device_get_parent@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_enumerate_new@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_device_unref@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_enumerate_add_match_subsystem@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_enumerate_get_list_entry@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_device_get_driver@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_device_get_sysname@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_unref@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_enumerate_scan_devices@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_list_entry_get_name@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_device_get_property_value@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_enumerate_unref@LIBUDEV_183'
/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialport/lib/libQt5SerialPort.so.5: undefined reference to `udev_device_get_devnode@LIBUDEV_183'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:99: ../../../bin/canbusutil] Error 1
make[4]: Leaving directory '/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialbus/src/tools/canbusutil'
make[3]: *** [Makefile:59: sub-canbusutil-install_subtargets] Error 2
make[3]: Leaving directory '/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialbus/src/tools'
make[2]: *** [Makefile:112: sub-tools-install_subtargets] Error 2
make[2]: Leaving directory '/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialbus/src'
make[1]: *** [Makefile:61: sub-src-install_subtargets] Error 2
make[1]: Leaving directory '/home/yash/BBB/qt-everywhere-src-5.13.1/qtserialbus'
make: *** [Makefile:178: module-qtserialbus-install_subtargets] Error 2

I have tried clean building the same multiple times, but always faced the same issue.

Can someone please help with figuring out what is going wrong here?

Thanks a ton.


Solution

  • To anyone trying to build Qt for cross-compilation for BeagleBone Black, following this guide properly would work.

    PS: It should be kept in mind to download qtcreator with a version equivalent to or older than the qt-source being built.