Hello,
I am trying to create an OOT named myqt that contains a duplicate of the qtgui waterfall_sink_f but I am having what appears to be some linking issues. I created a new OOT with the gr_modtool then added a module named waterfall_sink_f. I then replace the files generated in the lib and include folders with those in gnuradio/qtgui. I changed the namespace from qtgui to myqt and changed the <gnuradio/qtgui/waterfall_sink_f.h> and <gnuradio/qtgui/api.h> includes to <myqt/waterfall_sink_f.h> and <myqt/api.h>. I also replace QTGUI_API with MYQT_API. I then modified the following cmake files
./CMakeLists.txt
+ find_package(Qt4 4.2.0 COMPONENTS QtCore QtGui)
+ find_package(Qwt 6.0.0)
+ include(GrSetupQt4) (I added FindQwt.cmake from gnuradio source to my OOT cmake/Modules)
+ added QWT and QT DIRS to library and incude
./lib/CMakeLists.txt
+ added ${QWT_LIBRARIES} ${QT_LIBRARIES} gnuradio-qtgui to the target link libraries
With these changes the code compiles however when I run python myqt_swig.py I get the following
:gr-myqt/build/swig$ python myqt_swig.py
Traceback (most recent call last):
File "myqt_swig.py", line 28, in <module>
_myqt_swig = swig_import_helper()
File "myqt_swig.py", line 24, in swig_import_helper
_mod = imp.load_module('_myqt_swig', fp, pathname, description)
ImportError: gr-myqt/build/lib/libgnuradio-myqt-1.0.0git.so.0.0.0: undefined symbol: _ZN20WaterfallDisplayForm13setUpdateTimeEd
:gr-myqt/build/swig$ c++filt _ZN20WaterfallDisplayForm13setUpdateTimeEd
WaterfallDisplayForm::setUpdateTime(double)
I then run nm -gC on the shared library and get the following
:gr-myqt/build/lib$ nm -gC libgnuradio-myqt-1.0.0git.so.0.0.0 | grep setUpdateTime
U WaterfallDisplayForm::setUpdateTime(double)
So it is undefined but I can’t seem to figure out how to fix that… any help would be greatly appreciated.
Kaleb
No comments:
Post a Comment