网站全屏视频怎么做,美丽说网站模板,保定网站建设方案报价,用dw做网站流程一、什么是GNU编译器?
GNU编译器#xff08;GNU Compiler Collection#xff0c;简称GCC#xff09;#xff0c;是一套由自由软件基金会所发展的编程器。GCC支持多种编程语言#xff0c;包括C、C、Objective-C、Fortran、Ada、以及其它一些语言。它是Linux系统和很多类U…一、什么是GNU编译器?
GNU编译器GNU Compiler Collection简称GCC是一套由自由软件基金会所发展的编程器。GCC支持多种编程语言包括C、C、Objective-C、Fortran、Ada、以及其它一些语言。它是Linux系统和很多类Unix的标准编译器。
在GCC中每种语言分别有单独的解释器。举例而言编译C语言时会触发cc1、as、ld并以一个可执行二进制文件结束。GCC目的是为了能够支持多种源代码语言并支持多种目标架构
二、GCC的编译选项
使用GCC编译时可以指定一些选项来控制编译的过程。以下是一些常用选项
1. 编译选项
1-c只编译不连接。
2-E只运行C预处理器不编译。
3-S只编译生成汇编代码。
2. 优化选项
1-O指定最优化级别。
2-Os最小化代码大小。
3-Og仅在调试时开启优化。
3. 链接选项
1-l库名称链接库。
2-L库目录指定库目录。
3-no-pie: 为了旧版本ELF格式的二进制兼容而加入它取消了PIE特性禁止生成位置独立的可执行文件。
三、GCC用法举例
下面是一个简单的C程序
#include using namespace std;int main()
{cout Hello, world! endl;return 0;
}我们可以使用以下的命令来编译
g -o helloworld helloworld.cpp这里g 是 GCC 对 C 的编译器-o 选项指定输出的二进制文件名称为 helloworld然后我们指定编译的文件为 helloworld.cpp。 通过以下命令可以查看GCC的版本
gcc -v如果发现版本较旧可以选择进行升级。
which gcc 可以查看路径
只要是 GCC 支持编译的程序代码都可以使用 gcc 命令完成编译。可以这样理解gcc 是 GCC 编译器的通用编译指令因为根据程序文件的后缀名gcc 指令可以自行判断出当前程序所用编程语言的类别比如
xxx.c默认以编译 C 语言程序的方式编译此文件xxx.cpp默认以编译 C 程序的方式编译此文件。xxx.m默认以编译 Objective-C 程序的方式编译此文件xxx.go默认以编译 Go 语言程序的方式编译此文件 当然gcc 指令也为用户提供了“手动指定代表编译方式”的接口即使用 -x 选项。例如gcc -xc xxx 表示以编译 C 语言代码的方式编译 xxx 文件而 gcc -xc xxx 则表示以编译 C 代码的方式编译 xxx 文件。 但如果使用 g 指令则无论目标文件的后缀名是什么该指令都一律按照编译 C 代码的方式编译该文件。也就是说对于 .c 文件来说gcc 指令以 C 语言代码对待而 g 指令会以 C 代码对待。但对于 .cpp 文件来说gcc 和 g 都会以 C 代码的方式编译。