zoukankan      html  css  js  c++  java
  • Linux之gcc与g++编译器

    1.gcc编译器

      gcc编译器开发初期定位为C编译器(GNU C Compiler),但随着时间的发展gcc编译器能够支持多种语言。

    1.1 gcc编译器的使用

      假如我们已经有了.c文件名称为Hello.c,可以使用下面的语句编译该文件:

    $ gcc Hello.c

    该语句执行成功后,会在当前目录下生成可执行文件名称为a.out(默认),我们可以使用下面的语句来运行该可执行文件:

    $ ./a.out

    当然我们不想使用默认的名称,这样不够直观,我们可以在使用gcc进行编译时指定其可执行文件名:

    $ gcc -o hello Hello.

    默认的a.out文件名就被替换成了“hello”;

     

    1.2 编译有关选项

      在很多情况下程序员不是要一个可执行文件这么简单,一些场合需要目标代码,有些场合需要汇编代码等等,下面列举出编译相关选项:

      -c  只激活预处理,编译和汇编,生成扩展名为.o的目标代码文件;

      -S  只激活预处理和编译,生成扩展名为.s的汇编代码文件;

      -E  只激活预处理,并将结果输出至标准输出

      -g  为调试程序生成相关信息(如gdb)

    1.3 优化选项

      gcc提供了3个级别的优化给程序员进行选择,从低到高依次是-O1,-O2和-O3。从理论上来将-O3能生成执行效率最高的代码,然而优化程度越高风险越高,一般情况下-O2使用较多。事实上三个级别的优化是对多种具体优化的打包,具体的可以查看gcc官方手册,另外可以使用-march选项,为特定的CPU编译二进制代码,但不是特殊场合不要使用-march选项。

    $ gcc -O2 -o hello Hello.c

    2.g++编译器

      gcc虽然也能编译C++源文件,但是其不能自动和C++库进行连接,所以通常使用g++来完成C++源文件的编译和链接

    g++编译器的使用

      g++编译器的使用和gcc基本一致。

  • 相关阅读:
    支持向量机SVM知识梳理和在sklearn库中的应用
    Android P HIDL demo代码编写 (原创)
    Android P HIDL服务绑定模式与直通模式的分析 (原创)
    NFCApplication 启动分析(原创)
    Android native进程间通讯的实例 (原创)
    android 6.0 高通平台sensor 工作机制及流程(原创)
    NFC OMA 访问
    NXP NFC移植及学习笔记(原创)
    自定义View实战
    从0开始学自定义View -1
  • 原文地址:https://www.cnblogs.com/chmm/p/7429886.html
Copyright © 2011-2022 走看看