gcc区分编译操作系统
⑴ 什么是GCCGCC有什么作用
GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。
GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如linux、BSD、Mac OS X等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的着名例子,由自由软件基金会以GPL协议发布。
GCC功能与作用:
1、预处理
命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。
2、编译
用GCC编译C/C++代码时,它会试着用最少的时间完成编译并且编译后的代码易于调试。易于调试意味着编译后的代码与源代码有同样的执行顺序,编译后的代码没有经过优化。
3、连接
当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。
4、汇编
汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。
(1)gcc区分编译操作系统扩展阅读:
gcc所遵循的部分约定规则:
1、.c为后缀的文件,c语言源代码文件。
2、.a为后缀的文件,是由目标文件构成的档案库文件。
3、.h为后缀的文件,是程序所包含的头文件。
4、.i 为后缀的文件,是C源代码文件且不应该对其执行预处理。
5、.m为后缀的文件,是Objective-C源代码文件。
6、.o为后缀的文件,是编译后的目标文件。
7、.s为后缀的文件,是汇编语言源代码文件。
⑵ AOCC和GCC的区别是什么
它最大的区别就是它的英文字母含量是不一样的,因为一个是4个字母,一个是三个字母。
⑶ 跪求vs、vc和GCC、G++3.4.1的具体区别
1、GCC是一个编译器集合, VC是MS开发的Windows系统C/C++ IDE. 2、GCC中的C/C++标准库代码和VC肯定是不同的, MS一般都是从别人那买来用, 比如Dinkumware, GCC C/C++的标准库就是GNU自己写的了, 当然这遵循GPL, MS虽然也可以免费拿来用, 但是MS历来仇视GPL和Linux. 还有就是GCC C/C++的标准库对C/C++标准的貌似是最好的. 3、Linux的桌面操作系统基本都集成安装了KDE(K Desktop Environment), X-Windows等图形操作系统界面, 所以各种包装了GCC编译器内核的IDE应运而生, 比如Ubuntu, Mandriva, Fedora, Debian等操作系统中都有自带的GCC IDE, 当然你也可以用Commond Line来操作和编译代码.
⑷ gcc 如何判断操作系统的类型
这个最好是自己再做一个配接层,也就是在写一个在不同操作系统下都能让你的程序能够运行的简单或复杂的库。
标准库也是在不同的平台有不同的实现,连boost有些库都是需要单独编译,就是因为这些库有平台依赖性。
一般如果是windows,都会定义一些windows特性的宏
⑸ GCC是什么编译器跟vc自带的有什么不同
GCC的全称是GNU
Compiler
Collection
是GNU下属的编译器集合,
包括C/C++,
JAVA,
Perl,
Python等语言.
你问他和VC有什么不同?
我要告诉你的是:
1、GCC是一个编译器集合,
VC是MS开发的Windows系统C/C++
IDE.
2、GCC中的C/C++标准库代码和VC肯定是不同的,
MS一般都是从别人那买来用,
比如Dinkumware,
GCC
C/C++的标准库就是GNU自己写的了,
当然这遵循GPL,
MS虽然也可以免费拿来用,
但是MS历来仇视GPL和Linux.
还有就是GCC
C/C++的标准库对C/C++标准的貌似是最好的.
3、Linux的桌面操作系统基本都集成安装了KDE(K
Desktop
Environment),
X-Windows等图形操作系统界面,
所以各种包装了GCC编译器内核的IDE应运而生,
比如Ubuntu,
Mandriva,
Fedora,
Debian等操作系统中都有自带的GCC
IDE,
当然你也可以用Commond
Line来操作和编译代码.
⑹ GCC是什么编译器跟vc自带的有什么不同
GCC的全称是GNU
Compiler
Collection
是GNU下属的编译器集合,
包括C/C++,
JAVA,
Perl,
Python等语言.
你问他和VC有什么不同?
我要告诉你的是:
1、GCC是一个编译器集合,
VC是MS开发的Windows系统C/C++
IDE.
2、GCC中的C/C++标准库代码和VC肯定是不同的,
MS一般都是从别人那买来用,
比如Dinkumware,
GCC
C/C++的标准库就是GNU自己写的了,
当然这遵循GPL,
MS虽然也可以免费拿来用,
但是MS历来仇视GPL和Linux.
还有就是GCC
C/C++的标准库对C/C++标准的貌似是最好的.
3、Linux的桌面操作系统基本都集成安装了KDE(K
Desktop
Environment),
X-Windows等图形操作系统界面,
所以各种包装了GCC编译器内核的IDE应运而生,
比如Ubuntu,
Mandriva,
Fedora,
Debian等操作系统中都有自带的GCC
IDE,
当然你也可以用Commond
Line来操作和编译代码.
⑺ GCC是什么编译器跟vc自带的有什么不同
GCC的全称是GNU Compiler Collection
是GNU下属的编译器集合, 包括C/C++, JAVA, Perl, Python等语言.
你问他和VC有什么不同?
我要告诉你的是:
1、GCC是一个编译器集合, VC是MS开发的Windows系统C/C++ IDE.
2、GCC中的C/C++标准库代码和VC肯定是不同的, MS一般都是从别人那买来用, 比如Dinkumware, GCC C/C++的标准库就是GNU自己写的了, 当然这遵循GPL, MS虽然也可以免费拿来用, 但是MS历来仇视GPL和Linux. 还有就是GCC C/C++的标准库对C/C++标准的貌似是最好的.
3、Linux的桌面操作系统基本都集成安装了KDE(K Desktop Environment), X-Windows等图形操作系统界面, 所以各种包装了GCC编译器内核的IDE应运而生, 比如Ubuntu, Mandriva, Fedora, Debian等操作系统中都有自带的GCC IDE, 当然你也可以用Commond Line来操作和编译代码.
⑻ gcc是什么意思
GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。
GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的着名例子,由自由软件基金会以GPL协议发布。
GCC功能与作用:
1、预处理
命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。
2、编译
用GCC编译C/C++代码时,它会试着用最少的时间完成编译并且编译后的代码易于调试。易于调试意味着编译后的代码与源代码有同样的执行顺序,编译后的代码没有经过优化。
3、连接
当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。
4、汇编
汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。
GCC在执行编译工作的时候,总共需要4步:
1、预处理,生成 .i 的文件[预处理器cpp]
2、将预处理后的文件转换成汇编语言, 生成文件 .s [编译器egcs]
3、有汇编变为目标代码(机器代码)生成 .o 的文件[汇编器as]
4、连接目标代码, 生成可执行程序 [链接器ld]
常用选项
-ansi 只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色, 例如 asm 或 typeof 关键词。
1、-c:只编译并生成目标文件。
2、-DMACRO:以字符串"1"定义 MACRO 宏。
3、-DMACRO=DEFN:以字符串"DEFN"定义 MACRO 宏。
4、-E:只运行 C 预编译器。
5、-g:生成调试信息。GNU 调试器可利用该信息。
6、-IDIRECTORY:指定额外的头文件搜索路径DIRECTORY。
7、-LDIRECTORY:指定额外的函数库搜索路径DIRECTORY。
8、-lLIBRARY:连接时搜索指定的函数库LIBRARY。
9、-m486:针对 486 进行代码优化。
⑼ gcc和arm-linux-gcc是什么关系区别是什么
gcc是linux系统下面用来将代码编译成一个可执行程序的手段。编译出来的是适用于linux系统的可执行二进制文件。可执行程序其实就是一堆的0101二进制机器码。这些机器码代表什么含义只有机器本身能理解。所以你用gcc编译出来的可执行程序只有在linux系统下面可以运行。举个例子你的可执行程序里面有一句01011.这句在linux下面可能是吃饭的意思,但是在windows下面可能01011是撒尿的意思。那你说linux的可执行程序放在window下面能正常运行吗?肯定不能嘛。你要的目的是吃饭,它帮你执行撒尿很显然就不对了。同样的可能01011在ARM下面的意思是睡觉。不同系统的机器码含义是不一样的。所以你在linux系统下面写的代码要怎样才能在ARM系统上面跑呢。这就需要用到交叉编译。arm-linux-gcc是什么意思?就是告诉你的编译器,我编写的环境是linux,但是我希望生成的可执行程序是在arm上面跑的。这就是交叉编译。编写环境和执行环境分离的一种手段。
⑽ c语言和gcc有什么区别
g++和gcc都是计算机语言的编译器(在linux操作系统中运行)。前者用于编译c++语言,后者可编译c和c++语言。
编译器的作用就是把程序员根据某种计算机编程语言所写的代码翻译为机器指令让计算机执行。