zoukankan      html  css  js  c++  java
  • Ubuntu---gcc && g++

    摘要:今天用 gcc 编译 c++ 代码,发现会报错:std::cout  这个函数无定义,所以决定查一下原因,在这里总结一下,虽然以后回头看一定会觉得太菜,但是新手期还是总要经历的一个阶段,所以就记录下来。

    1,什麽是 gcc / g++

    首先说明:gcc 和 GCC 是两个完全不同的东西

    GCC:GUN Compiler Collection(GUN 编译器集合),它可以编译 C,C++,Object-C等语言。

    gcc 是 GUN C Compiler (C 编译器)

    g++ 是 GUN C++ Compiler (C++ 编译器)

    一个本质事实是,就本质而言,gcc 和 g++ 并不是编译器,而是一种驱动器,根据参数中要编译的文件类型,调用对应的 GUN 的编译器而已,比如,用 gcc 编译一个 .c 文件的话,会有一下几个步骤:

    step1:Call a preprocessor, like cpp.

    step2:Call an actual compiler, like cc or cc1.

    step3:Call an assembler, like as.

    step4:Call a linker, like ld.

    由于编译器是可以更换的,所以 gcc 不仅仅可以编译 C 文件,所以更准确的说:gcc 调用的是 C Compiler,而 g++ 调用了 C++ compiler。

    2,gcc 和 g++ 的主要区别

    a,对于 *.c 和 *.cpp 文件,gcc 分别当作 c 和 cpp 文件编译

    b,对于 *.c 和 *.cpp 文件,g++ 则统一当作 cpp 文件编译

    c,在使用 g++ 编译文件时,g++ 会自动链接标准库STL,而 gcc 不会

    d,在用 gcc 编译 c++ 文件时,为了能使用STL,需要加参数 -lstdc++ ,但这并不代表 gcc 和 g++ 等价,它们的区别不仅仅是这个。

    $ gcc hello.cpp -lstdc++ -o hello

    3,主要参数

    -g : turn on debugging(so GDB gives morefriendly output)

    -Wall : returns on most warnings

    -O or -O2 : turn on optimizations

    -o : name of the output file

    -c : output an object file (.o)

    -L : specify an includedirectory

    -l : link with librarylib.a

    参考博客:https://www.cnblogs.com/oxspirt/p/6847438.html

    所有博文均为原著,如若转载,请注明出处!
  • 相关阅读:
    建表关系
    设计模式-策略模式
    设计模式-适配器模式
    在线操作word和在线预览查找的资料记录
    Elasticsearch 使用-安装
    12-factors
    Kafka 使用-安装
    Apache Zookeeper 使用-安装
    Java 使用-安装
    设计模式-模板方法模式
  • 原文地址:https://www.cnblogs.com/zpcoding/p/10771455.html
Copyright © 2011-2022 走看看