• ###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

  • 相关阅读:
    176. Second Highest Salary
    175. Combine Two Tables
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
    169. Majority Element
    168. Excel Sheet Column Title
    167. Two Sum II
    160. Intersection of Two Linked Lists
    个人博客记录
    <meta>标签
  • 原文地址:https://www.cnblogs.com/gr-nick/p/3880523.html
Copyright © 2020-2023  润新知