-
Couldn't load subscription status.
- Fork 149
Description
Describe your environment
$ uname -a
Linux host 6.6.0-060600-generic #202311151808 SMP PREEMPT_DYNAMIC Thu Nov 16 06:04:00 UTC 2023 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
$ sudo apt-get install build-essential cmake pkg-config libmp3lame-dev libshout3-dev 'libconfig++-dev' librtlsdr-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
build-essential is already the newest version (12.9).
cmake is already the newest version (3.25.1-1).
pkg-config is already the newest version (1.8.1-1).
libmp3lame-dev is already the newest version (3.100-6).
libshout3-dev is already the newest version (2.4.6-1+b1).
libconfig++-dev is already the newest version (1.5-0.4).
librtlsdr-dev is already the newest version (0.6.0-4).
The following packages were automatically installed and are no longer required:
linux-headers-6.1.0-32-amd64 linux-headers-6.1.0-32-common
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
(python3-numpy is kept back)
$ cmake -DNFM=ON ../
-- Build type not specified: defaulting to Release
-- Found lame includes: /usr/include/lame/lame.h
-- Found lame library: /usr/lib/x86_64-linux-gnu/libmp3lame.so
-- Checking for module 'libmirisdr'
-- Package 'libmirisdr', required by 'virtual:world', not found
-- Could NOT find MiriSDR (missing: MIRISDR_LIBRARY MIRISDR_INCLUDE_DIR)
-- Checking for SoapySDR
-- SoapySDR found, /usr/include, SoapySDR
-- Checking for module 'libpulse'
-- Package 'libpulse', required by 'virtual:world', not found
-- RTLSDR-Airband configuration summary:-- - Version string: 5.1.1
-- - Build type: Release
-- - Operating system: Linux
-- - SDR drivers:
-- - librtlsdr: requested: ON, enabled: TRUE
-- - mirisdr: requested: ON, enabled: FALSE
-- - soapysdr: requested: ON, enabled: TRUE
-- - Other options:
-- - Platform: native
-- - Build Unit Tests: FALSE
-- - Broadcom VideoCore GPU: FALSE
-- - NFM support: ON
-- - PulseAudio: requested: ON, enabled: FALSE
-- - Profiling: requested: OFF, enabled: FALSE
-- - Icecast TLS support: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/RTLSDR-Airband-5.1.1/build
What happened?
Link errors near end of make stage:
$ make
[ 5%] Generating version.cpp, _version.cpp
[ 10%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/config.cpp.o
[ 15%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/input-common.cpp.o
[ 21%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/input-file.cpp.o
[ 26%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/input-helpers.cpp.o
[ 31%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/mixer.cpp.o
[ 36%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/output.cpp.o
[ 42%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/rtl_airband.cpp.o
[ 47%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/squelch.cpp.o
[ 52%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/ctcss.cpp.o
[ 57%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/util.cpp.o
[ 63%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/udp_stream.cpp.o
[ 68%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/logging.cpp.o
[ 73%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/filters.cpp.o
[ 78%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/helper_functions.cpp.o
[ 78%] Generating version.cpp, _version.cpp
[ 84%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/version.cpp.o
[ 89%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/input-rtlsdr.cpp.o
[ 94%] Building CXX object src/CMakeFiles/rtl_airband_base.dir/input-soapysdr.cpp.o
[ 94%] Built target rtl_airband_base
[100%] Linking CXX executable rtl_airband
/usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in function_libusb_callback': librtlsdr.c:(.text+0x25e): undefined reference tolibusb_submit_transfer'
/usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionfc0012_set_freq': librtlsdr.c:(.text+0x463): undefined reference tolibusb_control_transfer'
/usr/bin/ld: librtlsdr.c:(.text+0x4b8): undefined reference tolibusb_control_transfer' /usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_demod_write_reg.constprop.7':
librtlsdr.c:(.text+0x578): undefined reference tolibusb_control_transfer' /usr/bin/ld: librtlsdr.c:(.text+0x5a8): undefined reference tolibusb_control_transfer'
/usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_demod_write_reg.constprop.8': librtlsdr.c:(.text+0x718): undefined reference tolibusb_control_transfer'
/usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o):librtlsdr.c:(.text+0x747): more undefined references tolibusb_control_transfer' follow /usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_get_usb_strings':
librtlsdr.c:(.text+0x187d): undefined reference tolibusb_get_device' /usr/bin/ld: librtlsdr.c:(.text+0x1888): undefined reference tolibusb_get_device_descriptor'
/usr/bin/ld: librtlsdr.c:(.text+0x18dc): undefined reference tolibusb_get_string_descriptor_ascii' /usr/bin/ld: librtlsdr.c:(.text+0x1926): undefined reference tolibusb_get_string_descriptor_ascii'
/usr/bin/ld: librtlsdr.c:(.text+0x1971): undefined reference tolibusb_get_string_descriptor_ascii' /usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_write_eeprom':
librtlsdr.c:(.text+0x1a0a): undefined reference tolibusb_control_transfer' /usr/bin/ld: librtlsdr.c:(.text+0x1a31): undefined reference tolibusb_control_transfer'
/usr/bin/ld: librtlsdr.c:(.text+0x1a67): undefined reference tolibusb_control_transfer' /usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_read_eeprom':
librtlsdr.c:(.text+0x1b13): undefined reference tolibusb_control_transfer' /usr/bin/ld: librtlsdr.c:(.text+0x1b5a): undefined reference tolibusb_control_transfer'
/usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o):librtlsdr.c:(.text+0x2111): more undefined references tolibusb_control_transfer' follow /usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_get_device_count':
librtlsdr.c:(.text+0x2f22): undefined reference tolibusb_init' /usr/bin/ld: librtlsdr.c:(.text+0x2f38): undefined reference tolibusb_get_device_list'
/usr/bin/ld: librtlsdr.c:(.text+0x2f6d): undefined reference tolibusb_get_device_descriptor' /usr/bin/ld: librtlsdr.c:(.text+0x2fb3): undefined reference tolibusb_free_device_list'
/usr/bin/ld: librtlsdr.c:(.text+0x2fbc): undefined reference tolibusb_exit' /usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_get_device_name':
librtlsdr.c:(.text+0x2fe5): undefined reference tolibusb_init' /usr/bin/ld: librtlsdr.c:(.text+0x2ffb): undefined reference tolibusb_get_device_list'
/usr/bin/ld: librtlsdr.c:(.text+0x302d): undefined reference tolibusb_get_device_descriptor' /usr/bin/ld: librtlsdr.c:(.text+0x3096): undefined reference tolibusb_free_device_list'
/usr/bin/ld: librtlsdr.c:(.text+0x309f): undefined reference tolibusb_exit' /usr/bin/ld: librtlsdr.c:(.text+0x30d0): undefined reference tolibusb_free_device_list'
/usr/bin/ld: librtlsdr.c:(.text+0x30d9): undefined reference tolibusb_exit' /usr/bin/ld: librtlsdr.c:(.text+0x30fe): undefined reference tolibusb_free_device_list'
/usr/bin/ld: librtlsdr.c:(.text+0x3107): undefined reference tolibusb_exit' /usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_get_device_usb_strings':
librtlsdr.c:(.text+0x3149): undefined reference tolibusb_init' /usr/bin/ld: librtlsdr.c:(.text+0x3164): undefined reference tolibusb_get_device_list'
/usr/bin/ld: librtlsdr.c:(.text+0x319d): undefined reference tolibusb_get_device_descriptor' /usr/bin/ld: librtlsdr.c:(.text+0x31ed): undefined reference tolibusb_free_device_list'
/usr/bin/ld: librtlsdr.c:(.text+0x31f7): undefined reference tolibusb_exit' /usr/bin/ld: librtlsdr.c:(.text+0x3225): undefined reference tolibusb_open'
/usr/bin/ld: librtlsdr.c:(.text+0x3252): undefined reference tolibusb_close' /usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_open':
librtlsdr.c:(.text+0x3349): undefined reference tolibusb_init' /usr/bin/ld: librtlsdr.c:(.text+0x3368): undefined reference tolibusb_get_device_list'
/usr/bin/ld: librtlsdr.c:(.text+0x33a2): undefined reference tolibusb_get_device_descriptor' /usr/bin/ld: librtlsdr.c:(.text+0x33f9): undefined reference tolibusb_close'
/usr/bin/ld: librtlsdr.c:(.text+0x3406): undefined reference tolibusb_exit' /usr/bin/ld: librtlsdr.c:(.text+0x3447): undefined reference tolibusb_open'
/usr/bin/ld: librtlsdr.c:(.text+0x3460): undefined reference tolibusb_free_device_list' /usr/bin/ld: librtlsdr.c:(.text+0x346b): undefined reference tolibusb_kernel_driver_active'
/usr/bin/ld: librtlsdr.c:(.text+0x347f): undefined reference tolibusb_claim_interface' /usr/bin/ld: librtlsdr.c:(.text+0x34c6): undefined reference tolibusb_control_transfer'
/usr/bin/ld: librtlsdr.c:(.text+0x352f): undefined reference tolibusb_control_transfer' /usr/bin/ld: librtlsdr.c:(.text+0x3554): undefined reference tolibusb_control_transfer'
/usr/bin/ld: librtlsdr.c:(.text+0x3592): undefined reference tolibusb_control_transfer' /usr/bin/ld: librtlsdr.c:(.text+0x35b7): undefined reference tolibusb_control_transfer'
/usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o):librtlsdr.c:(.text+0x35f5): more undefined references tolibusb_control_transfer' follow /usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_open':
librtlsdr.c:(.text+0x39ad): undefined reference tolibusb_free_device_list' /usr/bin/ld: librtlsdr.c:(.text+0x3a99): undefined reference tolibusb_reset_device'
/usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_close': librtlsdr.c:(.text+0x3bfa): undefined reference tolibusb_release_interface'
/usr/bin/ld: librtlsdr.c:(.text+0x3c03): undefined reference tolibusb_close' /usr/bin/ld: librtlsdr.c:(.text+0x3c0b): undefined reference tolibusb_exit'
/usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_reset_buffer': librtlsdr.c:(.text+0x3c92): undefined reference tolibusb_control_transfer'
/usr/bin/ld: librtlsdr.c:(.text+0x3cc5): undefined reference tolibusb_control_transfer' /usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_read_async':
librtlsdr.c:(.text+0x3ea6): undefined reference tolibusb_submit_transfer' /usr/bin/ld: librtlsdr.c:(.text+0x3eed): undefined reference tolibusb_handle_events_timeout_completed'
/usr/bin/ld: librtlsdr.c:(.text+0x3f39): undefined reference tolibusb_free_transfer' /usr/bin/ld: librtlsdr.c:(.text+0x3f78): undefined reference tolibusb_dev_mem_free'
/usr/bin/ld: librtlsdr.c:(.text+0x4028): undefined reference tolibusb_alloc_transfer' /usr/bin/ld: librtlsdr.c:(.text+0x40ca): undefined reference tolibusb_cancel_transfer'
/usr/bin/ld: librtlsdr.c:(.text+0x40db): undefined reference tolibusb_handle_events_timeout_completed' /usr/bin/ld: librtlsdr.c:(.text+0x411d): undefined reference tolibusb_handle_events_timeout_completed'
/usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_i2c_write_fn': librtlsdr.c:(.text+0x41fd): undefined reference tolibusb_control_transfer'
/usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_i2c_read_fn': librtlsdr.c:(.text+0x424d): undefined reference tolibusb_control_transfer'
/usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_set_bias_tee': librtlsdr.c:(.text+0x42c4): undefined reference tolibusb_control_transfer'
/usr/bin/ld: librtlsdr.c:(.text+0x431c): undefined reference tolibusb_control_transfer' /usr/bin/ld: librtlsdr.c:(.text+0x4365): undefined reference tolibusb_control_transfer'
/usr/bin/ld: /usr/local/lib/librtlsdr.a(librtlsdr.c.o): in functionrtlsdr_read_sync': librtlsdr.c:(.text+0x3d4a): undefined reference tolibusb_bulk_transfer'
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/rtl_airband.dir/build.make:118: src/rtl_airband] Error 1
make[1]: *** [CMakeFiles/Makefile2:126: src/CMakeFiles/rtl_airband.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
What you expected to happen?
Successful build.
If not a bug, was hoping you can tell me what your make file is trying to do with these external lib source files.
Steps to Reproduce
Slight chance a Debian Bookworm environment could cause it but smells more like a configuration or path issue I don't understand.
Additional context
This system has successfully built other rtl programs and has them running. I am puzzled as to why it is so concerned with these outside source files (i.e. librtlsdr.c) when they aren't in this project's directory tree. I was able to successfully build this on a ubuntu system with identical hardware. Looks like maybe a configuration issue on the bookworm system but exactly what is ambiguous to me as it doesn't make sense to me to begin with.
Also tried copying the build directory between systems after make but there are a lot of system-specific paths which aren't compatible.
Copying the executable works.