UNIX高级编程---GCC
创始人
2024-05-28 17:17:40
0

GCC

  • GCC 原名为 GNU 语言编译器 (GNU C Compiler)
  • GCC 是由 GNU 开发的编程语言编译器。
  • GCC 不仅支持 C 的许多方言,也可以区别不同的 C 语言标准;可以使用命令行选项来控制编译器在翻译原码时应该遵循哪个 C 标注。例如,当使用命令行参数 -std=c99 启动 GCC 时,编译器支持 C99 标注
  • 安装命令 sudo apt install gcc g++ (版本 >4.8.5 包含 c++11)
  • 查看版本 gcc/g++ -v/–version

GCC 工作流程

源代码(.h / .c / .cpp)–>预处理器–>预处理后源代码(.i)–>编译器–>汇编代码(.S)–>汇编器–>目标代码(.o)[启动代码、库代码、其他目标代码]–>链接器–>可执行程序(.out / .exe)

预处理:gcc a.c -E -o test.i
编译器:gcc test.i -S -o test.S
汇编器:gcc test.S -o test.o

G++

  • g++ 在编译阶段是 用 gcc 编译,gcc 不能用链接 c++ 程序。需要调用 g++ 链接。
  • 编译可以用 gcc/g++,而链接可以用 g++ 或者 gcc -lstdc++。
  • gcc 命令不能自动和 C++程序使用的库链接,所以通常使用 g++ 来完成链接。但在编译阶段,g++ 会自动调用 gcc,二者等价。

GCC 常用选项

  • -E 预处理指定源文件,不进行编译
  • -S 编译指定的源文件,但是不进行汇编
  • -c 编译、汇编指定的源文件,但不进行链接
  • -o [file1] [file2] / [file2] -o [file1] 将文件 file2 编译成可执行文件 file1
  • -I directory 指定 include 包含文件的搜索木鹿
  • -g 在编译的时候,生成调试信息,生成调试信息,该程序可以被调试器调试
  • -D 在程序编译的时候,指定一个宏
  • -w 不生成任何警告信息
  • -Wall 生成所有警告信息
  • On n的取值范围:0~3.编译器的优化选项的四个级别,-O0表示没有优化,-O1缺省值,-O3优化级别最高
  • -l 在程序编译的时候,指定使用的库
  • -L 指定编译的时候,搜索的库路径
  • -fPIC/fpic 生成与位置无关的代码
  • -shared 生成共享目标文件,通常用在建立共享库时
  • -std 指定C方言,如 -std=c99 ,gcc 默认的方言是 GNU C

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...