I am definitely a newbie here, so excuse me if I am asking some things
that might seem obvious.
I am mostly a windows guy, so I compiled and installed both the UHD
(003.004.003-253-gd9829759) and the gnuradio (3.6.2) under windows using
the CMAKE program.
After some effort, I can run gnuradio-companion. In the gnuradio
examples, I’ve tried filter/resampler_demo.grc and
pfb/resampler_demo.grc.
The pfb/resampler_demo.grc seems to run without any trouble. However,
when I execute filter/resampler_demo.grc, Python crashes. In the block
diagram, if I remove the arbitrary resampler block, python doesn’t seem
to crash when I run it. So, I’m guessing that the arbitrary resampler
module is causing the problems.
filter/resampler_demo.grc crashes consistently even when I use the
precompiled binaries from Ettus and even when I install gnuradio on a
different windows machine.
When running gnuradio in Virtualbox under Ubuntu, however,
filter/resampler_demo.grc executes without a problem.
If you had any thoughts on this, I would appreciate it.
Thanks so much,
Seth
Other randome notes:
To run the GRC examples, I need to delete the first line that starts
with the hash ‘#’. It seems like GRC expects the bracket ‘<’ as the
first line.
I have to say, that as a newcomer, the whole issue of installing and
understanding gnuradio is very confusing. One additional issue I ran
into (but overcame) is a link error in the gnuradio compile:
when compiling gnuradio-core (?), I get two link errors in
uhd_swigPYTHON_wrap.obj of the variety:
error LNK2019: unresolved external symbol “__declspec(dllimport) public:
__thiscall uhd::range_t::range_t(class uhd::range_t const &)”
(_imp??0range_t@uhd@@QAE@ABV01@@Z) …
For some reason, it seems that the definitions have to be explicitly
declared in the source, so I added the following to ranges.cpp:
range_t::~range_t(void)
{
/* NOP */
}
range_t::range_t(range_t const & _copy_range_t)
{
_start = _copy_range_t._start;
_step = _copy_range_t._step;
_stop = _copy_range_t._stop;
}
added code to ranges.hpp
// copy range
range_t(range_t const & _copy_range_t);
// declare destructor
~range_t(void);