Skip to content

Remove unneeded link references to gnuradio libs

Alexandru Csete requested to merge csete/gr-satnogs:build-fix into dev

These are already included with ${GNURADIO_ALL_LIBRARIES}.


On my system I have GNU Radio installed in a custom directory and use environment variables to build and link against it. Cmake has no problems finding my gnuradio install:

GNURADIO_BLOCKS_LIBRARIES_gnuradio-blocks:FILEPATH=/home/alc/sdr/runtime/lib/libgnuradio-blocks.so
GNURADIO_BLOCKS_LIBRARIES_gnuradio-pmt:FILEPATH=/home/alc/sdr/runtime/lib/libgnuradio-pmt.so
GNURADIO_BLOCKS_LIBRARIES_gnuradio-runtime:FILEPATH=/home/alc/sdr/runtime/lib/libgnuradio-runtime.so
GNURADIO_DIGITAL_LIBRARIES_gnuradio-digital:FILEPATH=/home/alc/sdr/runtime/lib/libgnuradio-digital.so
GNURADIO_DIGITAL_LIBRARIES_gnuradio-pmt:FILEPATH=/home/alc/sdr/runtime/lib/libgnuradio-pmt.so
GNURADIO_DIGITAL_LIBRARIES_gnuradio-runtime:FILEPATH=/home/alc/sdr/runtime/lib/libgnuradio-runtime.so

However, during link I got the error:

[ 55%] Linking CXX shared library libgnuradio-satnogs-1.5.0git.so
/usr/bin/ld: cannot find -lgnuradio-blocks
/usr/bin/ld: cannot find -lgnuradio-digital
collect2: error: ld returned 1 exit status
lib/CMakeFiles/gnuradio-satnogs.dir/build.make:1077: recipe for target 'lib/libgnuradio-satnogs-1.5.0git.so.0.0.0' failed
make[2]: *** [lib/libgnuradio-satnogs-1.5.0git.so.0.0.0] Error 1
CMakeFiles/Makefile2:172: recipe for target 'lib/CMakeFiles/gnuradio-satnogs.dir/all' failed
make[1]: *** [lib/CMakeFiles/gnuradio-satnogs.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2

That's why I suggest removing the explicit link reference to gnuradio-blocks and gnuradio-blocks. THery seem to be readily inlucded by ${GNURADIO_ALL_LIBRARIES}.

FYI, this is the complete linker command line. As you can see, it is missing a -L/data/sdr/runtime/lib if we want to keep the explicit references to these lbraries:

/usr/bin/c++  -fPIC  -Wextra -O3 -DNDEBUG  -shared -Wl,-soname,libgnuradio-satnogs-1.5.0git.so.0.0.0 -o libgnuradio-satnogs-1.5.0git.so.0.0.0 CMakeFiles/gnuradio-satnogs.dir/morse_tree.cc.o CMakeFiles/gnuradio-satnogs.dir/morse_decoder_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/multi_format_msg_sink_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/ogg_encoder_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/cw_to_symbol_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/udp_msg_source_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/tcp_rigctl_msg_source_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/doppler_correction_cc_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/frame_encoder_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/doppler_fit.cc.o CMakeFiles/gnuradio-satnogs.dir/freq_drift.cc.o CMakeFiles/gnuradio-satnogs.dir/upsat_fsk_frame_acquisition_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/upsat_fsk_frame_encoder_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/whitening.cc.o CMakeFiles/gnuradio-satnogs.dir/udp_msg_sink_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/coarse_doppler_correction_cc_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/ax25_encoder_mb_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/ax25_decoder_bm_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/qb50_deframer_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/waterfall_sink_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/ogg_source_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/noaa_apt_sink_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/frame_file_sink_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/iq_sink_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/quad_demod_filter_ff_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/decoder_8b10b_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/ccsds_rs_decoder_mm_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/fox_telem_mm_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/lrpt_sync_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/convolutional_deinterleaver.cc.o CMakeFiles/gnuradio-satnogs.dir/lrpt_decoder_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/frame_acquisition_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/shift_reg.cc.o CMakeFiles/gnuradio-satnogs.dir/golay24.cc.o CMakeFiles/gnuradio-satnogs.dir/morse_debug_source_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/debug_msg_source_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/debug_msg_source_raw_impl.cc.o CMakeFiles/gnuradio-satnogs.dir/cw_encoder_impl.cc.o -lboost_filesystem -lboost_system -lboost_chrono -lboost_thread -lboost_date_time -lboost_atomic -lpthread /home/alc/sdr/runtime/lib/libgnuradio-runtime.so /home/alc/sdr/runtime/lib/libgnuradio-pmt.so /home/alc/sdr/runtime/lib/libgnuradio-blocks.so /home/alc/sdr/runtime/lib/libgnuradio-digital.so /home/alc/sdr/runtime/lib/libgnuradio-fft.so /home/alc/sdr/runtime/lib/libgnuradio-filter.so -lgnuradio-blocks -lgnuradio-digital -lpthread /home/alc/sdr/runtime/lib/libvolk.so -logg -lvorbis -lvorbisfile -lvorbisenc -lpng -lz /data/sdr/runtime/lib/libfec.so -Wl,-rpath,/home/alc/sdr/runtime/lib:/data/sdr/runtime/lib: 
/usr/bin/ld: cannot find -lgnuradio-blocks
/usr/bin/ld: cannot find -lgnuradio-digital
collect2: error: ld returned 1 exit status

Merge request reports