discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: looking for tree to use for gr-iio and gnuradio 3.9


From: Chris Gorman
Subject: Re: looking for tree to use for gr-iio and gnuradio 3.9
Date: Wed, 16 Sep 2020 07:49:01 -0400

On Tue, Sep 15, 2020 at 12:40 PM Chris Gorman <chrisjohgorman@gmail.com> wrote:
>
> Hello All,
>
> I am trying to migrate gr-iio -b maint-3.8 to gnuradio 3.9 with
> pybind11.  I have, I think, got most of it working.
>
> My latest hurdle is at
> https://wiki.gnuradio.org/index.php/GNU_Radio_3.9_OOT_Module_Porting_Guide.
> Step 8. Though not necessary, boost::bind instances for message port
> handlers can be replaced with lambda functions for performance and
> simplicity as well as consistency with the in-tree modules.
>
> My main reason for looking to do this is I get an error during my
> build related to boost::bind.
>
> [ 25%] Building CXX object lib/CMakeFiles/gnuradio-iio.dir/attr_sink_impl.cc.o
> cd /home/chris/src/iio/gr-iio/build/lib && /usr/bin/c++
> -DBOOST_ALL_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK
> -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_REGEX_DYN_LINK
> -DBOOST_SYSTEM_DYN_LINK -DBOOST_THREAD_DYN_LINK -DFFTW3F_THREADS
> -DGR_CTRLPORT -Dgnuradio_iio_EXPORTS
> -I/home/chris/src/iio/gr-iio/lib/../include
> -I/home/chris/src/iio/gr-iio/build/lib -isystem /usr/include/python3.8
> -isystem /usr/lib/python3.8/site-packages/numpy/core/include -isystem
> /opt/gnuradio/include -O3 -DNDEBUG -fPIC   -fvisibility=hidden
> -std=gnu++11 -o CMakeFiles/gnuradio-iio.dir/attr_sink_impl.cc.o -c
> /home/chris/src/iio/gr-iio/lib/attr_sink_impl.cc
> /home/chris/src/iio/gr-iio/lib/attr_sink_impl.cc: In constructor
> ‘gr::iio::attr_sink_impl::attr_sink_impl(const string&, const string&,
> const string&, int, bool, bool)’:
> /home/chris/src/iio/gr-iio/lib/attr_sink_impl.cc:92:92: error: ‘_1’
> was not declared in this scope
>    92 | ::mp("attr"), boost::bind(&attr_sink_impl::write_attribute, this, 
> _1));
>       |                                                                   ^~
>
> /home/chris/src/iio/gr-iio/lib/attr_sink_impl.cc:92:92: note:
> suggested alternatives:
> In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
>                  from /usr/include/boost/mpl/placeholders.hpp:43,
>                  from /usr/include/boost/iterator/iterator_categories.hpp:16,
>                  from /usr/include/boost/iterator/iterator_facade.hpp:13,
>                  from /usr/include/boost/filesystem/path.hpp:29,
>                  from /usr/include/boost/filesystem.hpp:16,
>                  from /opt/gnuradio/include/gnuradio/logger.h:36,
>                  from /opt/gnuradio/include/gnuradio/basic_block.h:16,
>                  from /opt/gnuradio/include/gnuradio/block.h:15,
>                  from
> /home/chris/src/iio/gr-iio/lib/../include/iio/attr_sink.h:27,
>                  from /home/chris/src/iio/gr-iio/lib/attr_sink_impl.h:26,
>                  from /home/chris/src/iio/gr-iio/lib/attr_sink_impl.cc:27:
> /usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16:
> note:   ‘mpl_::_1’
>    29 | typedef arg<1> _1;
>       |                ^~
> In file included from /usr/include/boost/system/error_code.hpp:19,
>                  from /usr/include/boost/filesystem/path_traits.hpp:22,
>                  from /usr/include/boost/filesystem/path.hpp:26,
>                  from /usr/include/boost/filesystem.hpp:16,
>                  from /opt/gnuradio/include/gnuradio/logger.h:36,
>                  from /opt/gnuradio/include/gnuradio/basic_block.h:16,
>                  from /opt/gnuradio/include/gnuradio/block.h:15,
>                  from
> /home/chris/src/iio/gr-iio/lib/../include/iio/attr_sink.h:27,
>                  from /home/chris/src/iio/gr-iio/lib/attr_sink_impl.h:26,
>                  from /home/chris/src/iio/gr-iio/lib/attr_sink_impl.cc:27:
> /usr/include/c++/10.2.0/functional:221:34: note:   ‘std::placeholders::_1’
>   221 |     extern const _Placeholder<1> _1;
>       |                                  ^~
> In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
>                  from /usr/include/boost/mpl/placeholders.hpp:43,
>                  from /usr/include/boost/iterator/iterator_categories.hpp:16,
>                  from /usr/include/boost/iterator/iterator_facade.hpp:13,
>                  from /usr/include/boost/filesystem/path.hpp:29,
>                  from /usr/include/boost/filesystem.hpp:16,
>                  from /opt/gnuradio/include/gnuradio/logger.h:36,
>                  from /opt/gnuradio/include/gnuradio/basic_block.h:16,
>                  from /opt/gnuradio/include/gnuradio/block.h:15,
>                  from
> /home/chris/src/iio/gr-iio/lib/../include/iio/attr_sink.h:27,
>                  from /home/chris/src/iio/gr-iio/lib/attr_sink_impl.h:26,
>                  from /home/chris/src/iio/gr-iio/lib/attr_sink_impl.cc:27:
> /usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16:
> note:   ‘mpl_::_1’
>    29 | typedef arg<1> _1;
>       |                ^~
> In file included from /usr/include/boost/bind/bind.hpp:2356,
>                  from /usr/include/boost/thread/detail/thread.hpp:33,
>                  from /usr/include/boost/thread/thread_only.hpp:22,
>                  from /usr/include/boost/thread/thread.hpp:12,
>                  from /usr/include/boost/thread.hpp:13,
>                  from /opt/gnuradio/include/gnuradio/logger.h:38,
>                  from /opt/gnuradio/include/gnuradio/basic_block.h:16,
>                  from /opt/gnuradio/include/gnuradio/block.h:15,
>                  from
> /home/chris/src/iio/gr-iio/lib/../include/iio/attr_sink.h:27,
>                  from /home/chris/src/iio/gr-iio/lib/attr_sink_impl.h:26,
>                  from /home/chris/src/iio/gr-iio/lib/attr_sink_impl.cc:27:
> /usr/include/boost/bind/placeholders.hpp:46:38: note:
> ‘boost::placeholders::_1’
>    46 | BOOST_STATIC_CONSTEXPR boost::arg<1> _1;
>       |                                      ^~
> In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
>                  from /usr/include/boost/mpl/placeholders.hpp:43,
>                  from /usr/include/boost/iterator/iterator_categories.hpp:16,
>                  from /usr/include/boost/iterator/iterator_facade.hpp:13,
>                  from /usr/include/boost/filesystem/path.hpp:29,
>                  from /usr/include/boost/filesystem.hpp:16,
>                  from /opt/gnuradio/include/gnuradio/logger.h:36,
>                  from /opt/gnuradio/include/gnuradio/basic_block.h:16,
>                  from /opt/gnuradio/include/gnuradio/block.h:15,
>                  from
> /home/chris/src/iio/gr-iio/lib/../include/iio/attr_sink.h:27,
>                  from /home/chris/src/iio/gr-iio/lib/attr_sink_impl.h:26,
>                  from /home/chris/src/iio/gr-iio/lib/attr_sink_impl.cc:27:
> /usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16:
> note:   ‘mpl_::_1’
>    29 | typedef arg<1> _1;
>       |                ^~
> make[2]: *** [lib/CMakeFiles/gnuradio-iio.dir/build.make:197:
> lib/CMakeFiles/gnuradio-iio.dir/attr_sink_impl.cc.o] Error 1
> make[2]: Leaving directory '/home/chris/src/iio/gr-iio/build'
> make[1]: *** [CMakeFiles/Makefile2:267:
> lib/CMakeFiles/gnuradio-iio.dir/all] Error 2
> make[1]: Leaving directory '/home/chris/src/iio/gr-iio/build'
> make: *** [Makefile:149: all] Error 2
>
> A few questions.  Does anyone know which, if any, solution proposed by
> the compiler, I should pursue? Is there an easy fix with lambda
> functions?
>
> Finally, I am wondering if there is a better branch than maint-3.8 to
> use for migrating gr-iio?
>
> Thanks in advance,
>
> Chris

Hello Again,

I have found my error.  A simple addition to attr_sink_impl.cc

diff --git a/lib/attr_sink_impl.cc b/lib/attr_sink_impl.cc
index 0bc869c..c6f5a4b 100644
--- a/lib/attr_sink_impl.cc
+++ b/lib/attr_sink_impl.cc
@@ -27,8 +27,11 @@
 #include "attr_sink_impl.h"
 #include <cstdio>
 #include <iostream>
+#include <boost/bind/bind.hpp>
 #include <boost/lexical_cast.hpp>

+using namespace boost::placeholders;
+
 namespace gr {
   namespace iio {

fixes this error.

Chris



reply via email to

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