Open jcwren opened 3 years ago
cd src
in g++ -I/ -W -Wall -O3 -o kal kal-arfcn_freq.o kal-c0_detect.o kal-circular_buffer.o kal-fcch_detector.o kal-kal.o kal-offset.o kal-usrp_source.o kal-util.o -lfftw3 -L -lrtlsdr -lrt
replace -L before -lrtlsdr with -L and then the path where your librtlsdr.so is located.
Thx, adding the path after -L in Makefile and src/Makefile did it for me. I guess some automagic doesn't drop the path correctly in here.
Installed all the perquisite packages, but it's unhappy trying to link against librtlsdr. Not sure why, it's there,
ldconfig
knows about it. This is on an RPi 4 with the latest Raspberry Pi OS. Any ideas?~/kalibrate-rtl $ ./bootstrap && CXXFLAGS='-W -Wall -O3' ./configure && make checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for g++... g++ checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking whether make supports the include directive... yes (GNU style) checking dependency style of g++... gcc3 checking for gcc... gcc checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking dependency style of gcc... gcc3 checking whether ln -s works... yes checking for ranlib... ranlib checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for unistd.h... (cached) yes checking libgen.h usability... yes checking libgen.h presence... yes checking for libgen.h... yes checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for inline... inline checking for working strtod... yes checking for floor... no checking for getpagesize... yes checking for memset... yes checking for sqrt... no checking for strtoul... yes checking for strtol... yes checking for library containing basename... none required checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for FFTW3... yes checking for LIBRTLSDR... yes checking for rtlsdr_set_dithering in -lrtlsdr... no checking build system type... armv7l-unknown-linux-gnueabihf checking host system type... armv7l-unknown-linux-gnueabihf checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands make all-recursive make[1]: Entering directory '/home/jcw/kalibrate-rtl' Making all in src make[2]: Entering directory '/home/jcw/kalibrate-rtl/src' g++ -I/ -W -Wall -O3 -o kal kal-arfcn_freq.o kal-c0_detect.o kal-circular_buffer.o kal-fcch_detector.o kal-kal.o kal-offset.o kal-usrp_source.o kal-util.o -lfftw3 -L -lrtlsdr -lrt /usr/bin/ld: kal-usrp_source.o: in function
usrp_source::~usrp_source()': usrp_source.cc:(.text+0x144): undefined reference to
rtlsdr_close' /usr/bin/ld: kal-usrp_source.o: in functionusrp_source::tune(double)': usrp_source.cc:(.text+0x234): undefined reference to
rtlsdr_set_center_freq' /usr/bin/ld: usrp_source.cc:(.text+0x244): undefined reference tortlsdr_get_center_freq' /usr/bin/ld: kal-usrp_source.o: in function
usrp_source::set_freq_correction(int)': usrp_source.cc:(.text+0x280): undefined reference tortlsdr_set_freq_correction' /usr/bin/ld: kal-usrp_source.o: in function
usrp_source::set_gain(float)': usrp_source.cc:(.text+0x2b4): undefined reference tortlsdr_set_tuner_gain_mode' /usr/bin/ld: usrp_source.cc:(.text+0x2ec): undefined reference to
rtlsdr_set_tuner_gain' /usr/bin/ld: kal-usrp_source.o: in functionusrp_source::open(unsigned int)': usrp_source.cc:(.text+0x33c): undefined reference to
rtlsdr_get_device_count' /usr/bin/ld: usrp_source.cc:(.text+0x374): undefined reference tortlsdr_get_device_name' /usr/bin/ld: usrp_source.cc:(.text+0x3ac): undefined reference to
rtlsdr_get_device_name' /usr/bin/ld: usrp_source.cc:(.text+0x3cc): undefined reference tortlsdr_open' /usr/bin/ld: usrp_source.cc:(.text+0x3e0): undefined reference to
rtlsdr_set_sample_rate' /usr/bin/ld: usrp_source.cc:(.text+0x3f0): undefined reference tortlsdr_reset_buffer' /usr/bin/ld: usrp_source.cc:(.text+0x41c): undefined reference to
rtlsdr_reset_buffer' /usr/bin/ld: kal-usrp_source.o: in functionusrp_source::fill(unsigned int, unsigned int*)': usrp_source.cc:(.text+0x4fc): undefined reference to
rtlsdr_read_sync' collect2: error: ld returned 1 exit status make[2]: [Makefile:403: kal] Error 1 make[2]: Leaving directory '/home/jcw/kalibrate-rtl/src' make[1]: [Makefile:378: all-recursive] Error 1 make[1]: Leaving directory '/home/jcw/kalibrate-rtl' make: *** [Makefile:319: all] Error 2 ~/kalibrate-rtl $