###g++编译器

本文档详细介绍了g++编译器的使用技巧,包括如何正确使用模板、迭代器及智能指针等特性。此外,还介绍了如何解决常见的编译错误及依赖问题,并提供了在不同编译环境下配置g++的具体方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

###g++编译器

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

对g++编译器不是特别熟悉,希望借此熟悉一下.点击查看Evernote原文

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));
    }
    

3. 使用迭代器时,定义的时候需要加上typename;
    ```cpp
    //前面需要加上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<file>造成的依赖关系。

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

转载于:https://my.oschina.net/grnick/blog/296732

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值