[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] Out of Tree linker error... libgnuradio-MYMOD.so: und
From: |
John Murphy |
Subject: |
[Discuss-gnuradio] Out of Tree linker error... libgnuradio-MYMOD.so: undefined reference to `gr::fft::fft_complex::execute()' |
Date: |
Wed, 23 Jul 2014 16:24:13 -0400 |
I am getting a link error when making my Out-of-Tree module.
I apologize in advance for the length of this, my first post to this list. I
get the daily 'digest' version.
This Out of Tree module was done with gr_modtool and cmake following the
outline given in
http://gnuradio.org/redmine/projects/gnuradio/wiki/OutOfTreeModules which,
after some figuring out how my setup was missing some things, worked (make and
install and runs in GRC) on another simpler block in this same module.
This is a re-run of the make spew that fails to link:
address@hidden build]$ make
Scanning dependencies of target gnuradio-comso
[ 7%] Building CXX object lib/CMakeFiles/gnuradio-comso.dir/ofdm_rx_impl.cc.o
Linking CXX shared library libgnuradio-comso.so
[ 14%] Built target gnuradio-comso
Linking CXX executable test-comso
libgnuradio-comso.so: undefined reference to `gr::fft::fft_complex::execute()'
collect2: error: ld returned 1 exit status
make[2]: *** [lib/test-comso] Error 1
make[1]: *** [lib/CMakeFiles/test-comso.dir/all] Error 2
make: *** [all] Error 2
address@hidden build]$
Note - it seems to me this is saying it linked my custom code to the fft but
failed to link the test code? Or am I mis-reading this?
I get the same error when I throw a #define switch in my block implementation
header to directly use fft_impl_fft_complex instead of gr::fft::fft_complex. To
make this work, such as it is, I had download the fft_impl_fft.h header file
and edit as follows.
//#include <fft/api.h>
//#include <gr_complex.h>
#include <gnuradio/fft/api.h>
#include <gnuradio/gr_complex.h>
There may be a clue there, but I do not understand enough to know.
Then here is the make error for this version, essentially identical.
address@hidden build]$ make
Scanning dependencies of target gnuradio-comso
[ 7%] Building CXX object lib/CMakeFiles/gnuradio-comso.dir/ofdm_rx_impl.cc.o
Linking CXX shared library libgnuradio-comso.so
[ 14%] Built target gnuradio-comso
Linking CXX executable test-comso
libgnuradio-comso.so: undefined reference to `fft_impl_fft_complex::execute()'
collect2: error: ld returned 1 exit status
make[2]: *** [lib/test-comso] Error 1
make[1]: *** [lib/CMakeFiles/test-comso.dir/all] Error 2
make: *** [all] Error 2
address@hidden build]$
I run GNU Radio Comapnion with FFT GUI's and they work fine, so clearly
something is executing FFT's although that may be unrelated. I do not have any
problems, for now, with any In-Tree heir blocks or with any Out-Of-Tree blocks
that do not link to the FFT libraries.
Also, this block uses the get_inbuf() and get_outbuf() functions for the
gnuradio fft classes, under either header mentioned above, with no linker
issues reported.
Module name is comso, block name is ofdm_rx, block is a C++ general-type block
I am running Fedora 20 with the LXDE desktop environment
GNU Radio is version 3.7.3 installed using yum from the default Fedora
repositories
linux kernel: 3.15.6-200.fc20.x86_64
Some possibly-relevant Fedora packages already installed and latest version:
gnuradio-3.7.3-1.fc20.x86_64
gnuradio-devel-3.7.3-1.fc20.x86_64
fftw-3.3.4-3.fc20.x86_64
fftw-devel-3.3.4-3.fc20.x86_64
fftw-libs-3.3.4-3.fc20.x86_64
fftw-libs-single-3.3.4-3.fc20.x86_64
fftw-libs-double-3.3.4-3.fc20.x86_64
fftw-libs-quad-3.3.4-3.fc20.x86_64
fftw-libs-long-3.3.4-3.fc20.x86_64
Anyone know what I need to do from here to make this build successfully? Am I
still missing some file or something is still pointing to the wrong place?
Thanks.
-John
- [Discuss-gnuradio] Out of Tree linker error... libgnuradio-MYMOD.so: undefined reference to `gr::fft::fft_complex::execute()',
John Murphy <=