discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] Question about adding your own classes


From: Tommy Tracy II
Subject: [Discuss-gnuradio] Question about adding your own classes
Date: Fri, 20 Sep 2013 13:58:16 -0400

Dear List,

I am using gr_modtool to create new modules and blocks, and I have a question about adding additional .cc/.h files that are not included by gr_modtool to the cmake file or otherwise importing them by hand.

My new blocks are dependent on two new classes called NetworkInterface.{cc,h} and EthernetConnector.{cc,h}. During the make process, if there is a syntax error in either of these files, the compiler will alert me. I was able to fix all problems and get the cmake, make, and make install completed. The problem manifested itself when I attempted to import the module:
----------
>>> import router
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/tjt7a/Src/target/lib/python2.7/dist-packages/router/__init__.py", line 45, in <module>
    from router_swig import *
  File "/home/tjt7a/Src/target/lib/python2.7/dist-packages/router/router_swig.py", line 26, in <module>
    _router_swig = swig_import_helper()
  File "/home/tjt7a/Src/target/lib/python2.7/dist-packages/router/router_swig.py", line 22, in swig_import_helper
    _mod = imp.load_module('_router_swig', fp, pathname, description)
ImportError: /home/tjt7a/Src/target/lib/libgnuradio-router.so: undefined symbol: _ZN16NetworkInterface7connectEPc
----------
To investigate the definition of this symbol, I ran c++filt
----------
$c++filt _ZN16NetworkInterface7connectEPc
NetworkInterface::connect(char*)
----------
This indicates, that my libgnuradio-router module cannot access the NetworkInterface object file, even though it was part of the compilation step.

My thought process was to create the two shared object (.so) files by hand, and move them to my python path location. So I did that:
----------
cc -shared -o libEthernetConnector.so -fPIC EthernetConnector.cc 
cc -shared -o libNetworkInterface.so -fPIC NetworkInterface.cc 
I then copied them to the location of my gnuradio .so files
----------

Unfortunately, this still hasn't solved the problem. Does anyone know a solution to this problem?

Tommy James Tracy II
Ph.D Student
High Performance Low Power Lab
University of Virginia
Phone: 913-775-2241


reply via email to

[Prev in Thread] Current Thread [Next in Thread]