• 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基本一致。

  • 相关阅读:
    vue实现图片路径传送
    title中添加小图标
    张钊的第一份作业
    张钊的第二份作业
    在Windows Server 2008 R2环境下安装活动目录失败的一个解决方法
    如何把SubVersion的服务程序变为Window后台服务形式
    一个关于静态方法调用的问题。
    WCF配置中遇到的问题:如何把Hostname修改成IP
    删除Visual Studio最近的项目(转载)
    有时候用ifstream或ofstream打开带有中文路径的文件会失败
  • 原文地址:https://www.cnblogs.com/chmm/p/7429886.html
Copyright © 2020-2023  润新知