zoukankan      html  css  js  c++  java
  • gnuradio3.3.0 Build Error on Ubuntu 11.04

    Today, I use another computer to compile gnuradio-3.3.0 and find the error. >_<!
    When I run "make", it
    runs for a while and then exits with the following error(s):
    
    srp2.cc:41:33: error: type/value mismatch at argument 1 in template
    parameter list for ‘template<class T> class boost::weak_ptr’
    usrp2.cc:41:33: error:   expected a type, got ‘usrp2::usrp2::usrp2’
    usrp2.cc:43:75: error: type/value mismatch at argument 1 in template
    parameter list for ‘template<class T> class boost::weak_ptr’
    usrp2.cc:43:75: error:   expected a type, got ‘usrp2::usrp2::usrp2’
    usrp2.cc: In static member function ‘static usrp2::usrp2::sptr
    usrp2::usrp2::find_existing_or_make_new(const std::string&,
    usrp2::props*, size_t)’:
    usrp2.cc:60:20: error: request for member ‘expired’ in
    ‘p.__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator->
    [with _Iterator = usrp2::usrp_table_entry*, _Container =
    std::vector<usrp2::usrp_table_entry>,
    __gnu_cxx::__normal_iterator<_Iterator, _Container>::pointer =
    usrp2::usrp_table_entry*]()->usrp2::usrp_table_entry::value’, which is
    of non-class type ‘int’
    usrp2.cc:64:31: error: no matching function for call to
    ‘boost::shared_ptr<usrp2::usrp2>::shared_ptr(int&)’
    /usr/include/boost/smart_ptr/shared_ptr.hpp:182:5: note: candidates
    are: boost::shared_ptr<T>::shared_ptr() [with T = usrp2::usrp2]
    /usr/include/boost/smart_ptr/shared_ptr.hpp:169:1: note:
      boost::shared_ptr<usrp2::usrp2>::shared_ptr(const
    boost::shared_ptr<usrp2::usrp2>&)
    usrp2.cc:73:23: error: expected type-specifier
    usrp2.cc:73:23: error: expected ‘)’
    usrp2.cc:74:30: error: no matching function for call to
    ‘usrp2::usrp_table_entry::usrp_table_entry(std::string&,
    usrp2::usrp2::sptr&)’
    usrp2.cc:43:5: note: candidates are:
    usrp2::usrp_table_entry::usrp_table_entry(const std::string&, int)
    usrp2.cc:38:27: note:
    usrp2::usrp_table_entry::usrp_table_entry(const
    usrp2::usrp_table_entry&)
    In file included from /usr/include/boost/shared_ptr.hpp:17:0,
                     from
    /home/Maverick/Desktop/Research/gnuradio-3.3.0/usrp2/host/include/usrp2/usrp2.h:22,
                     from usrp2.cc:23:
    /usr/include/boost/smart_ptr/shared_ptr.hpp: In constructor
    ‘boost::shared_ptr<T>::shared_ptr(Y*) [with Y = int, T =
    usrp2::usrp2]’:
    usrp2.cc:73:56:   instantiated from here
    /usr/include/boost/smart_ptr/shared_ptr.hpp:187:50: error: cannot
    convert ‘int*’ to ‘usrp2::usrp2*’ in initialization
    make[4]: *** [usrp2.lo] Error 1
    make[4]: Leaving directory
    `/home/Maverick/Desktop/Research/gnuradio-3.3.0/usrp2/host/lib'
    make[3]: *** [all-recursive] Error 1
    make[3]: Leaving directory
    `/home/Maverick/Desktop/Research/gnuradio-3.3.0/usrp2/host'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory
    `/home/Maverick/Desktop/Research/gnuradio-3.3.0/usrp2'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/Maverick/Desktop/Research/gnuradio-3.3.0'
    make: *** [all] Error 2
    

    I have never met this error before and I do some research on google finding the solution. it should change some codes. Next is the diff:
    
    diff --git a/usrp2/host/lib/usrp2.cc b/usrp2/host/lib/usrp2.cc
    index f0ee564..0842482 100644
    --- a/usrp2/host/lib/usrp2.cc
    +++ b/usrp2/host/lib/usrp2.cc
    @@ -38,9 +38,9 @@ namespace usrp2 {
       struct usrp_table_entry {
         // inteface + normalized mac addr ("eth0:01:23:45:67:89:ab")
         std::string        key;
    -    boost::weak_ptr<usrp2::usrp2>  value;
    +    boost::weak_ptr<usrp2>  value;
     
    -    usrp_table_entry(const std::string &_key, boost::weak_ptr<usrp2::usrp2> _value)
    +    usrp_table_entry(const std::string &_key, boost::weak_ptr<usrp2> _value)
           : key(_key), value(_value) {}
       };
     
    @@ -70,7 +70,7 @@ namespace usrp2 {
         // We don't have the USRP2 we're looking for
     
         // create a new one and stick it in the table.
    -    usrp2::sptr r(new usrp2::usrp2(ifc, pr, rx_bufsize));
    +    usrp2::sptr r(new usrp2(ifc, pr, rx_bufsize));
         usrp_table_entry t(key, r);
         s_table.push_back(t);
    
    reference : 
  • 相关阅读:
    Scala实验二——3.统计学生成绩
    Scala实验二——2.模拟图形绘制
    Scala实验二——1.计算级数
    Scala类和对象笔记
    《能力陷阱》反思
    spark学习
    Ajax获取后台Servlet数据
    在进行pip安装时报错:Could not fetch URL https://pypi.org/simple/xrld/: There was a problem confirming the ssl certificate:
    pycharm连接服务器的内部环境时出错,输入用户密码之后报错:Permission denied, please try again authentication failed
    pycharm连接docker服务器遇到的错误:java.net.ConnectException: Connection refused
  • 原文地址:https://www.cnblogs.com/nickchan/p/3104472.html
Copyright © 2011-2022 走看看