My C++ Project uses a library in form of header files and one shared object. When I try to build it, I get this:
FAILED: insta360
: && /usr/bin/c++ -g CMakeFiles/insta360.dir/main.cpp.o -o insta360 /usr/lib/libCameraSDK.so && :
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_device_get_devnode'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_monitor_enable_receiving'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_device_new_from_syspath'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_device_unref'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_monitor_new_from_netlink'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_device_get_sysname'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_enumerate_get_list_entry'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_monitor_unref'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_enumerate_add_match_subsystem'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_monitor_filter_add_match_subsystem_devtype'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_monitor_receive_device'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_enumerate_scan_devices'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_monitor_get_fd'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_unref'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_device_get_action'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_list_entry_get_name'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_enumerate_new'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_list_entry_get_next'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_new'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_enumerate_unref'
/usr/bin/ld: /usr/lib/libCameraSDK.so: undefined reference to `udev_enumerate_add_match_property'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
But when I run nm -D /usr/lib/libCameraSDK.so | grep udev
I get
U udev_device_get_action
U udev_device_get_devnode
U udev_device_get_sysname
U udev_device_new_from_syspath
U udev_device_unref
U udev_enumerate_add_match_property
U udev_enumerate_add_match_subsystem
U udev_enumerate_get_list_entry
U udev_enumerate_new
U udev_enumerate_scan_devices
U udev_enumerate_unref
U udev_list_entry_get_name
U udev_list_entry_get_next
U udev_monitor_enable_receiving
U udev_monitor_filter_add_match_subsystem_devtype
U udev_monitor_get_fd
U udev_monitor_new_from_netlink
U udev_monitor_receive_device
U udev_monitor_unref
U udev_new
U udev_unref
So the functions are present and the .so file is correctly imported. My header files are in /usr/include
and I have no Idea what could be wrong since I'm not very experienced with setting up C++ Projects myself and have only modified them.
Thanks in advance.