点击查看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

###g++编译器的更多相关文章

  1. gcc/g++编译器的安装与说明

    gcc/g++编译器的安装与说明 1.gcc/g++编译器的安装 gcc yum install gcc g++ yum install gcc-c++ 2.gcc/g++的作用 将c/c++源代码编 ...

  2. 算法竞赛中G++编译器的编译指令简单说明

    算法竞赛使用的在线判题平台在FAQ会给出提交的代码是通过什么指令进行编译的.比如hustoj给出的c++编译指令通常是: C++: g++ Main.cc -o Main -fno-asm -O2 - ...

  3. 关于 g++ 编译器

    g++由自由软件基金发行,g++是基于类unix的c++编译器,通常在命令行运行.它一般附带于类Unix系统中,因此如果你正在运行Unix或Linux系统,它很可能已经存在于你的系统中.你可以对一个源 ...

  4. g++编译器的使用

    关于g++ g++  是GNU组织开发出的编译器软件集合(GCC)下的一个C++编译器.它是Unix 和 Linux  系统下标配的 基于命令行的 C++编译器.如果你的系统是Windows,可以按照 ...

  5. Linux环境下GNU, GCC, G++编译器

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012823258/article/details/36890125 一.GNU GNU是" ...

  6. Linux环境下GNU, GCC, G++编译器(转)

    一,GNU GNU是“GNU 's Not Unix”的递归缩写, Stallman宣布GNU应当发音为Guh-NOO(革奴)以避免与new这个单词混淆(注:Gnu在英文中原意为非洲牛羚,发音与new ...

  7. g++编译器的使用(转载)

    关于g++ g++  是GNU组织开发出的编译器软件集合(GCC)下的一个C++编译器.它是Unix 和 Linux  系统下标配的 基于命令行的 C++编译器.如果你的系统是Windows,可以按照 ...

  8. CentOS 7 升级gcc/g++编译器

    gcc的升级必须要使用源码进行升级,也就说,必须要使用源码进行编译才行.我的7.2的CentOS目前自带的gcc是4.8.5的,gcc从4.8之后开始支持C++11,但是鉴于现在C++14.C++17 ...

  9. GCC、g++编译器和gcc编译器的区别

    GCC:(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器.它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分. gcc:GNU的C语 ...

随机推荐

  1. hdoj 1799 循环多少次?

    循环多少次? Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  2. 如何计算ModBus超时时间?

    波特率:每秒钟通过信道传输的信息量称为位传输速率,也就是每秒钟传送的二进制位数,简称比特率.比特率表示有效数据的传输速率,用b/s .bit/s.比特/秒,读作:比特每秒. 如9600b/s:指总线上 ...

  3. js中动态载入css js样式

    js中动态载入css样式,方法如下: //<link rel="stylesheet" type="text/css" href="http:/ ...

  4. pyinstaller打包第一个wxPython程序HelloWorld

    pyinstaller 打包hello 7Mb ================= www.pyinstaller.org pip install pypiwin32 pip install pyin ...

  5. C++学习笔记(十一):void*指针、类型转换和动态内存分配

    void*指针 void关键字表示“空类型”的概念.但是,这里的“空类型”不表示“任意类型”,而是表示不存在的意思,也就是说C/C++不允许你写语句void a,不存在类型为void的东西. void ...

  6. 4G通信技术LTE介绍

    参考文档在这里 LTE技术 LTE是继GSM/EDGE和UMTS/HSxPA之后的由3GPP推出的移动网络技术最新标准,属于4G. 未来网络需要更高的数据速率,和包路由优化系统.更好的QoA和更廉价的 ...

  7. 【转】解决HttpServletResponse输出的中文乱码问题

    http://blog.csdn.net/simon_1/article/details/9092747 首先,response返回有两种,一种是字节流outputstream,一种是字符流print ...

  8. 通过VMName获取VM IP

    PS3.0下通过测试,PS2.0下没有 networkAdapters 这个属性: $vmname = "22012r2" $v = get-vm |where {$_.name ...

  9. 【01】视C++为一个语言联邦

    1.C++是个多重范型编程语言:面向过程,面向对象,函数编程,泛型形式,元编程形式. 2.C++是一个语言联邦,包括四个次语言: a.C语言,C++以C语言为基础.但C语言有下列局限:没有模版,没有异 ...

  10. Android ListView快速定位(一)

    方法一: SectionIndexer接口 + 索引列表 参考:http://www.apkbus.com/android-69999-1-1.html 所谓section 就是一组有共性的item, ...