zoukankan      html  css  js  c++  java
  • ###g++编译器

    点击查看Evernote原文

    #@author:       gr
    #@date:         2014-07-20
    #@email:        forgerui@gmail.com
    

    对g++编译器不是特别熟悉,希望借此熟悉一下.

    Contents


    1. 要使用strlen需要加入#include <cstring>.

    2. g++编译器中的嵌套模板之间需要放一个空格.如下:

        //o_O awesome!! <List<char> >中间应该有个空格 
        List<char> l1 = make<List<char>>("hello");
        //~_~ correct
        List<char> l2 = make<List<char> >("hello");
        Template <typename Container>
        Container make(const char* s){
            return Container(s, s+strlen(s));
        }
    
    1. 使用迭代器时,定义的时候需要加上typename;
        //前面需要加上typename
        for (typename List<char>::iterator it = l2.begin(); it != i2.end(); ++it);
    
    1. visual studio中,shared_ptr通过#include <memory>便可以使用,使用的时候可以使用std::shared_ptr或者std::tr1::shared_ptr.
      g++中,需要#include <tr1/memory>,并且使用的时候,必须使用std::tr1::shared_ptr.

    2. gcc -Wall生成所有警告信息。

    3. gcc -M
        生成文件关联的信息。包含目标文件所依赖的所有源代码你可以用gcc -M hello.c
      来测试一下,很简单。
        

    4. gcc -MM
        和上面的那个一样,但是它将忽略由#include造成的依赖关系。

    5. 依赖问题:
      kalman.o:在函数‘main’中:kalman.cpp:(.text+0x18b):对‘cv::KalmanFilter::KalmanFilter(int, int, int, int)’未定义的引用
      编译时可以使用
      g++ -c kalmane.cpp pkg-config --cflags opencv
      同样链接时可以使用
      g++ -o kal kalman.cpp pkg-config --libs opencv

  • 相关阅读:
    Orleans 2 实例
    Linux基础1 目录和文件系统
    C#中的异步多线程补充1
    委托的小例子(基本委托,匿名方法,lambda)
    Orleans 1 基本概念
    WPF10 Binding-2
    WPF9 Binding-1
    WPF8 UI布局
    WPF7 布局控件
    软工总结
  • 原文地址:https://www.cnblogs.com/gr-nick/p/3880523.html
Copyright © 2011-2022 走看看