• 2019.11.12的错误集


    错误①
      /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
      .text+0x20): undefined reference to `main'
      collect2: error: ld returned 1 exit status
    解决:asio.hpp ---> asio.cpp(后缀名问题) //在标准库支持的情况下尽可能使用标准库的功能,而不是boost的功能

    错误②
      test.cpp: In function ‘int main()’:
      test.cpp:14:11: error: cannot call member function ‘void A::print()’ without object
      A::print();
    解决:这是在没有定义对象的情况下调用了类的成员函数造成的结果。可以在此函数上加static变量,参考signalton。

    错误③:
      class A {
        private:
          boost::asio::io_context io_;
          A(boost::asio::io_context& io_context) : io_(io_context) { std::cout << " ok " ;}
      };

      int main(){
        boost::asio::io_context io_context;
        A(io);
        io.run();
        return 0;
      }
      test.cpp: In constructor ‘A::A(boost::asio::io_context&)’:
      test.cpp:7:57: error: use of deleted function ‘boost::asio::io_context::io_context(const boost::asio::io_context&)’
      A(boost::asio::io_context& io_context) : io_(io_context) { std::cout << " ok " ;}
    解决:这是一个连续引用的错误问题,应该把A的成员变量io_,定义为boost::asio::io_context&。
       这是因为在构造函数结束后io_context这个引用变量就失效了。
      例子:

     1     #include<iostream>                                                                   
     2     class A {                                                                            
     3       private:                                                                           
     4         int my_;                                                                         
     5       public:                                                                            
     6         A(int& a):my_(a){                                                                
     7           std::cout << "address a :" << &a << std::endl;    //a是引用                             
     8           std::cout << "address my_:" << &my_ << std::endl; //my_是用引用初始化的值。                     
     9       }                                                                                  
    10     };                                                                                   
    11     int main(){                                                                          
    12       int m = 10;                                                                        
    13       std::cout<< "address m :" << &m << std::endl;                                      
    14       A o(m);                                                                            
    15       return 0;                                                                          
    16     }  
        
  • 相关阅读:
    博客园的使用和设置
    关于递推算法求解约瑟夫环问题P(n,m,k,s)
    HTML超链接和路径
    HTML文本元素标签
    HTML前序
    Java正则表达式验证至少6位表达式中至少包含数字大小写字母中的一种
    创建自己的第一个Vue项目
    查看端口及进程
    Java读取数据库(Oracle,MySQL,PostgresSQL)表信息以及字段信息生成Word文档
    启动项目报错ORA-12505, TNS:listener does not currently know of SID given in
  • 原文地址:https://www.cnblogs.com/Ccluck-tian/p/11842053.html
Copyright © 2020-2023  润新知