Undefined Symbol with UHD in GRC

Hello,

I am just trying to move to UHD. For this I installed the gnuradio
master branch to a custom location in my home. Moreover, the uhd
software (release 003.000.001 built from source) is at non-default
location in /opt/uhd.

./configure, make and make install worked without problems, but when
running a simple flowgraph in grc using a uhd block, I get an error
message (see below) when importing uhd.

Maybe I am missing an environment variable at this point?

$LD_LIBRARY_PATH=/opt/uhd/lib/:/home/csc/Software/gnuradio_git_master_2011-03-28/lib/
$PYTHONPATH=/home/csc/Software/gnuradio_git_master_2011-03-28/lib/python2.6/site-packages

A reply from Josh to a similar posting did not point me to the solution.
Libraries are there, but I did not find the symbol in
gr-uhd/uhd_swig.i as mentioned.

OS is Ubuntu karmic 9.10 64Bit.

Any hint is be appreciated.

Kind regards,
Christian

Traceback (most recent call last):
File “/home/csc/tmp/top_block.py”, line 10, in
from gnuradio import uhd
File
“/home/csc/Software/gnuradio_git_master_2011-03-28/lib/python2.6/site-packages/gnuradio/uhd/init.py”,
line 87, in
_prepare_uhd_swig()
File
“/home/csc/Software/gnuradio_git_master_2011-03-28/lib/python2.6/site-packages/gnuradio/uhd/init.py”,
line 26, in _prepare_uhd_swig
import uhd_swig
File
“/home/csc/Software/gnuradio_git_master_2011-03-28/lib/python2.6/site-packages/gnuradio/uhd/uhd_swig.py”,
line 6, in
import _uhd_swig
ImportError:
/home/csc/Software/gnuradio_git_master_2011-03-28/lib/libgnuradio-uhd-3.4.0git.so.0:
undefined symbol: _ZN3uhd4usrp10multi_usrp9ALL_GAINSE

On 04/11/2011 05:33 AM, Christian Schroeder wrote:

Maybe I am missing an environment variable at this point?

$LD_LIBRARY_PATH=/opt/uhd/lib/:/home/csc/Software/gnuradio_git_master_2011-03-28/lib/

$PYTHONPATH=/home/csc/Software/gnuradio_git_master_2011-03-28/lib/python2.6/site-packages

Also set the PKG_CONFIG_PATH to help your gnuradio configure find the
uhd in /opt

A reply from Josh to a similar posting did not point me to the solution.
Libraries are there, but I did not find the symbol in gr-uhd/uhd_swig.i
as mentioned.

OS is Ubuntu karmic 9.10 64Bit.

Any hint is be appreciated.

Make sure that you are building the latest master branch for UHD and for
Gnuradio, and then you dont have multiple installs or something. I’m
sure this is just an issue of a stale branch/install.

-Josh

Christian Schroeder wrote:

./configure, make and make install worked without problems, but when

$PYTHONPATH=/home/csc/Software/gnuradio_git_master_2011-03-28/lib/python2.6/site-packages

A reply from Josh to a similar posting did not point me to the
Make sure that you are building the latest master branch for UHD and for
in the libgnuradio-uhd.so and also in the libuhd.so
I’m sort of puzzeled at this point.

I just checked the output of the compilation of gnuradio and found some
warnings during compilation from .i to .py for the uhd_swig:

Compile .i to .py
/usr/sbin/swig [… SOME FLAGSS & INCLUDES …] python/uhd_swig.h
uhd_swig.i
/opt/uhd/include/uhd/types/time_spec.hpp:39: Warning(319): No access
specifier given for base class boost::additive<(time_spec_t)> (ignored).
/opt/uhd/include/uhd/types/time_spec.hpp:39: Warning(319): No access
specifier given for base class boost::totally_ordered<(time_spec_t)>
(ignored).
/opt/uhd/include/uhd/device.hpp:37: Warning(319): No access specifier
given for base class boost::noncopyable (ignored).
/opt/uhd/include/uhd/device.hpp:37: Warning(401): Nothing known about
base class ‘wax::obj’. Ignored.

Maybe this is related to the missing symbol, though this seems not
obvious.

Christian

I checked out both again from git and installed to /opt/uhd and
/opt/gnuradio, respectively, after ‘make uninstall’ for the other
versions.
‘./configure’, ‘make’ and ‘make install’ did not stop with error, uhd
blocks are available in GRC, but the symbol is still not there.
The symbol _ZN3uhd4usrp10multi_usrp9ALL_GAINSE which causes the error is
in the libgnuradio-uhd.so and also in the libuhd.so
I’m sort of puzzeled at this point.

I am puzzled as well. It seems the symbol ALL_GAINS is not being
exported for you. Here is the line, nothing weird about that:
http://code.ettus.com/redmine/ettus/projects/uhd/repository/revisions/master/entry/host/include/uhd/usrp/multi_usrp.hpp#L94

You said that the problem also happens with libuhd.so. So if you run the
example rx_timed_samples, the application also prints out this undefined
symbol error? If possible I would like to narrow this down to a uhd
problem or a uhd+gnuradio problem, etc…

Also, what compiler are you using? what version, etc…?

-Josh

Josh B. wrote:

On 04/11/2011 05:33 AM, Christian Schroeder wrote:

Hello,

I am just trying to move to UHD. For this I installed the gnuradio
master branch to a custom location in my home. Moreover, the uhd
software (release 003.000.001 built from source) is at non-default
location in /opt/uhd.

./configure, make and make install worked without problems, but when
running a simple flowgraph in grc using a uhd block, I get an error
message (see below) when importing uhd.

Maybe I am missing an environment variable at this point?

$LD_LIBRARY_PATH=/opt/uhd/lib/:/home/csc/Software/gnuradio_git_master_2011-03-28/lib/

$PYTHONPATH=/home/csc/Software/gnuradio_git_master_2011-03-28/lib/python2.6/site-packages

Also set the PKG_CONFIG_PATH to help your gnuradio configure find the
uhd in /opt

This I did, of course. Otherwise the gr-uhd would not have ben
configured. I also set UHD_LIBS and UHD_INCLUDEDIR

A reply from Josh to a similar posting did not point me to the
solution.

Libraries are there, but I did not find the symbol in
gr-uhd/uhd_swig.i

as mentioned.

OS is Ubuntu karmic 9.10 64Bit.

Any hint is be appreciated.

Make sure that you are building the latest master branch for UHD and
for
Gnuradio, and then you dont have multiple installs or something. I’m
sure this is just an issue of a stale branch/install.

I checked out both again from git and installed to /opt/uhd and
/opt/gnuradio, respectively, after ‘make uninstall’ for the other
versions.
‘./configure’, ‘make’ and ‘make install’ did not stop with error, uhd
blocks are available in GRC, but the symbol is still not there.
The symbol _ZN3uhd4usrp10multi_usrp9ALL_GAINSE which causes the error is
in the libgnuradio-uhd.so and also in the libuhd.so
I’m sort of puzzeled at this point.

Christian

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs