当前位置:首页 » 编程软件 » c最新的编译器

c最新的编译器

发布时间: 2023-06-11 06:12:16

‘壹’ 常见的c语言编译器是什么

目前最流行的C语言编译器有以下几种:

1、GNU Compiler Collection 或称GCC

GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。

GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的着名例子,由自由软件基金会以GPL协议发布。

2、Microsoft C 或称 MS C

Microsoft C 是c语言的一种IDE(集成开发环境),常见的还有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......

3、Borland Turbo C 或称 Turbo C

Turbo C是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套 Turbo系列软件, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 这些软件很受用户欢迎。

(1)c最新的编译器扩展阅读:

C编译的整个过程很复杂,大致可以分为以下四个阶段:

1、预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。

2、编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。

3、汇编阶段将汇编语言翻译成机器指令。

4、链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。

‘贰’ gcc编译器几乎很难发现c语言中的语法错误吗

1、使用gcc命令编译c++程序遇到错误。
需要明确的是,gcc是可以编译c++程序的。gcc,原名GNU C Compiler,最初是C语言的编译器,但经过发展之后,它变成了一个可以支持C++、Fortran、Pascal、Objective-C、Java、Ada,以及Go与其他语言编译的编译器套件,其名称也因此改为了GNU Compiler Collection。g++便是其中的一部分,用于处理c++语言。虽然大多数情况下,我们直接使用g++命令来编译c++程序,但直接使用gcc命令也可以编译c++程序的,当然前提是安装了g++(gcc-c++)模块。gcc命令会根据源程序的后缀名来决定实际使用的编译器,编译过程与直接使用g++完全一样,但是,链接过程有点不同。g++命令会自动给你加上c++标准库的链接,但gcc命令却不会给你自动加上,因些需要手动加上。例如如下的程序:

#include <iostream>

int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
使用gcc命令编译会报undefined reference的错误,使用g++命令就不会,但是使用gcc命令加上stdc++的链接库就可以成功编译。所以,如果是编译c++程序,最好还是使用g++命令编译吧。

2、undefined reference to XXX的问题

这个问题应该说是非常常见的一个问题了,通常情况下,这个问题是由于你使用了第三方的库文件,却没有加上相应的库的链接,导致编译器找不到符号。这种情况也比较好解决,只要加上链接库就可以了,具体命令有两种写法,一是使用-L和-l参数指定库的路径和库名,其中,库的文件名必须为libxxx.so或者libxxx.a的形式,其中的xxx就是库名,跟在-l参数后面;第二种是直接写上库的文件名(相对路径、绝对路径都可以),这种写些就是直接当这个库文件是一个.o文件(目标文件)进行链接。

不过有时候,明明已经写上了链接库,可还是会有undefined reference的错误,这个候,可能就是链接顺序的问题了。同样是上述简单的hello.cpp,我们使用gcc命令编译(不用g++命令是因为它自动加了stdc++的链接库,我们不好改顺序)

可以看到,虽然加上了-lstdc++,但还是有undefined reference的错误。这是因为链接器在进行链接的时候,是从前往后找符号的。由于libstdc++.so库中的的符号(std::cout,std::endl)是在hello.o(由hello.cpp编译而来)中使用的,因此,当链接器从左至右抛描库文件时,第一个碰到了stdc++库,发现并没有使用这个库中的符号,于是就将这个库给丢弃不用了,继续往后链接hello.o的时候,发现了其中要使用一些符号,而这些符号是stdc++中的,而stdc++库已经被链接器给扔了,所以就找不着了,就有了undefined reference。解决的方案也是两个:一是按引用顺序写链接的目标文件的顺序,如果是编译可执行程序,就从包含main函数的.o文件开始写,最基础的库写在最右边;二是加上-Wl,--as-needed参数,这个参数会将库文件中加入NEED标识,而不管这个库文件有没有用到(也就是告诉链接器,那个暂时没用到的库先别扔了)。但是第二种方法好像对stdc++这个库没什么作用,其他的第三方库可以,具体原因是什么还不太清楚,所以,最好写编译选项的时候,库文件还是按引用顺序写吧。

‘叁’ 大家都用什么C/C++编译环境

了解的C/C++编译器如下: x0dx0aGCC家族有 x0dx0aCygwin x0dx0aMingw32 x0dx0aDJGPP x0dx0aDev-C++(Mingw32) x0dx0a还有正宗的GNU GCC 2.95.5~3.0.0.4版本 x0dx0aMS家族有 x0dx0aMSC 5.0、6.0、7.0 x0dx0aMSQC 1.0、2.5 x0dx0aMSVC 1.0、4.2、6.0、7.0 x0dx0aBorland家族有 x0dx0aTC 1.0、2.0 x0dx0aTC++ 1.01、3.0 x0dx0aBC 3.0、3.1、4.0、4.5、5.0、5.02 x0dx0aBCB 3.0、5.0、6.0 x0dx0a其它有 x0dx0aIntel C/C++ 5.0 x0dx0aWatcom C/C++ 11.0、11.0c x0dx0aVectorC 1.3.3 x0dx0aIBM VisualAge for C++ x0dx0aDigitalMars C/C++ x0dx0aKAI C/C++ 4.03f for RedHat 7.2 x0dx0aLcc4.1 x0dx0aLCC-WIN32 2001-09-25~2002-04-28日版 x0dx0aSmall C x0dx0aCC386 x0dx0aPacific C x0dx0a另外还有C的解释器 x0dx0aQuincy x0dx0aEic x0dx0aCINT x0dx0ax0dx0a上面提到的编译器/解释器,大部分我都使用过。现在固定使用VC7.0 Cygwin Mingw32 VectorC和LCC-WIN32这五种编译器。 x0dx0ax0dx0a在GCC家族中GNU GCC是根本,其它的编译器版本都是从它导出的。其中,Cygwin和Mingw32都是WIN32平台下的编译器,DJGPP是DOS下的32位编译器。大家所熟知的DEV-C++充其量只是GCC的一个外壳,它所自带的编译器就是Mingw32的一个版本。这些GCC的版本中,Cygwin是最大的,它与其说是一个编译器,倒不如说是一套编程工具。它不仅有编译器,还有其它很多的工具。其实,它就是一个UNIX系统在WIN32平台上的实现。实现了大多常用的UNIX工具,最近的版本中连Apache这样的“工具”都集成进来的。不过,Cygwin虽然功能强大,但它却不是很易用(和UNIX相似,熟悉UNIX的人用它可以很快上手),因为太多其它的工具分散了人们的注意力。相比之下Mingw32就要好用得多,它只有最基本的几个编程工具(只可惜它不自带GDB)。GCC中并不只是C/C++编译器,其中还有很多其它的编译器如JAVA,Fortran,ADA等。它是一个编译器集合,不过有些编译器只能在UNIX系统上用。MS家族的编译器就不用说了,大家对它们都很熟悉。VC 7.0(VC.NET)是它的最新产品。Borland家族也不用说,大家也是耳熟能详。最近它才推出了BCB 6.0。 x0dx0ax0dx0a其它的编译器如:Intel C/C++大家一看名称就知道是Intel的东西,它和VC6完全兼容,不过要挂在VC6下才能用。Watcom C/C++是早先编译器四国大战中的一员,原本是很不错的东西,可惜战略不对,现在已不见声息了。倒是以它为基础的一个OpenWatcom现在还在奋战。VectorC是我近日才发现的一个好东东,它是个纯C的编译器。IBM的VisualAge for C++原本是IBM想用来淌C++编译器这片浑水的东西,不过IBM的战略改了,它就被放弃了。DigitalMars C/C++的前身的Symantec C++(它也是编译器四国大战中的一员),不过现在Symantec不做了,于是它的作者就把它改成了DigitalMars C/C++开放给大家使用。以上这些都是WIN32平台上的东西。KAI C/C++是个很强大的C/C++编译器,它是个多平台的编译器。不过现在被INTEL收购了,已经停止开发了。Lcc4.1是个纯C的编译器它是开放源代码的。不过不怎么好用。LCC-WIN32是一个在LCC基础上开发的C语言的集成开发环境,很好用,而且有很详细的资料,FREE!Pacific C是一个纯DOS的C的集成开发环境,就不多说了。Small C CC386都是开放源代码的编译器,它们都很简单,应用来给大家学习编译器的。Quincy Eic CINT都是C的解释器,是用来让大家学习C语言的其中CINT的功能很强大,还支持一些C++的特性。 x0dx0a当然还有很多其它的编译器,这里我给出的编译器都是可以在WIN32或DOS平台上用的(除KAI外)。UNIX平台上的编译器还是以GNU的为主,其它的我就不是很清楚了。 x0dx0ax0dx0a在以上的编译器中,最特别的就是VectorC这个东西只支持纯C。但它却号称是最快的编译器,不过经过我的试验,它的确在有些情况下强过其它编译器很多!而且它还有个交互式的优化器,可以让你直接看到C代码对映的汇编代码。Cygwin和Mingw32为一母所生,其运行效果相差不大。它们生成的代码效率都很不错,编译的速度也很快,最值得一提的是它们对C++的特性的支持算是所有编译器中最完全的,而且它们还支持C99的大部分特性。这一点很是不错!大家对MS的VC已经很熟悉了,本不用我多说。不过在它的最新的产品VC7.0中,有很大的改进。它对C++的特性的支持比6.0有了很大的提高,是我所用的编译器中是仅次于GCC的。而且它编译出的程序,运行速度很快!仅有少数时候次于VectorC与GCC,其它情况都是最快的!其平均运行速度是最快的。对Borland的产品我也无需多说。它的TC2.0与BC3.1都是我最喜欢的东西。可是现在的BCB却大不如前了,编译的速度和VC6一样慢!IDE还有较多的BUG。最令人想不通的是它生成的代码的运行速度很慢,比LCC-WIN32还慢!它唯一值得一提的就是它的RAD做的比MS的好。Intel的编译器大家可能不熟,它太贵了!还要有VC的支持,很不划算,而且编译速度比VC6还慢。不过它的代码质量很不错。DigitalMars C/C++没有什么亮点,编译速度较快,代码执行速度适中,对C++特性支持还算不错。LCC-WIN32是个很不错的集成开发环境,它只支持纯C。它的编译速度极快!代码执行速度较慢。不过它的最大亮点在于它的IDE,在所有的FREE编程工具中,它的IDE是最专业的,有很强大的代码分析,管理功能。而且它提供了大量的编程资料。 x0dx0a我曾对一些编译器的代码执行效率做过一些测试,以下是概况: x0dx0a1. VectorC、VC 7.0 (极快) x0dx0a2. Intel C/C++、VC 6.0、GCC (很快) x0dx0a3. DigitalMars C/C++ (一般) x0dx0a4. LCC-WIN32、BCB、BC5.02 (较慢) x0dx0a当然,我所做的测试比较片面。不过在很大程度上已能反映其大概状况。

‘肆’ c语言开发软件哪个最好

C语言基本上是大学计算机及其相关专业在大一上学期就会开的一门课程。

C语言作为一门起源比较早的编程语言,可以编程的手机软件和电脑软件非常多,下面我简单介绍几个,感兴趣的朋友可以自己尝试一下:

手机软件

1.C语言编译器:这是手机上的一个C语言编程软件,可以直接在手机上编译运行C语言程序,下面我简单介绍一下这个软件:

首先,下载安装C语言编译器,这个直接在手机应用商店中搜索就行,如下,大概也就12M左右,直接下载安装就行:

安装完成后,打开这个软件,就可以直接编写C语言程序了,效果如下,这里自带有编译器,可以直接编译运行程序:

2.C++++编译器:也即C4droid,手机上的一个C/C++编程软件,基本功能和C语言编译器差不多,也可以直接编译运行C语言程序,下面我简单介绍一下这个软件:

首先,下载安装C++编译器,这个也直接在手机商店中搜索就行,如下,不大,也就3M左右,直接下载安装就行:

安装完成后,燃枯逗打开软件,就可以直接编写C语言程序了,效果如下,这里自带有简单的TCC编译器,所以可以直接编译程序,在扩展中你也可以下载GCC和G++编译器:

电脑软件

1.Dev-C++:这是Windows平台下一个免费、轻量级的C/C++集成开发环境,基本功能和早期的VC++6.0非常相似,自带有GCC、GDB等编译调试工具,因为没有任何自动补全、语法检查和提示的功能,所以对于初学者来说非常锻炼基本功,在许多学校中都作为教学软件使用:

2.Code:Blocks:这也是一个轻量级的C/C++开发环境,免费、开源、跨平台,相比较Dev-C++比较单一的功能来说,支持自动补全、语法提示和语法检查,除此之外,还自带有许多现成的工程模板,可以快速开发GUI、Qt、OpenGL等应用,插件扩展也比较丰富,对于初学者来说,也是一个非常不错的选择:

3.VisualStudio:这应该是Windows平台下使用最多的C/C++开发环境了,专业重量级的,由微软自主设计研发,号称宇宙第一IDE,插件扩展众多,支持单元测试、代码重构等高级功能,开发调试效率都非常高,因此在大型项目开发中经常会用到这个软件,虽然对于初学者来说,早期不容易学习和掌握,但熟悉后,的确是一个编程开发利器:

4.Vim:这个是Linux环境下使用比较多的代码编辑器败巧,严格意义上说不是一个C语言开发软件,但安装GCC、GDB等工具后,也是一个非常不错的C语言编程软件,插件扩展众多,皮卖占用内存少,轻便灵活:

当然,还有许多其他C语言编程软件,像C-free,CLion,Xcode等也都非常不错,选择适合自己的一种就行,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

自带编译器环境:VC6.0++、VS2008以上系列、C-Free(自带编译器有点老,可以自行换)

不带编译器:code:blocks(自行下载编译器:TDM-GCC、MinGW,这两个二选一)

小型IDE:C-Free、code::blocks

超轻便版:notepad++和TDM-GCC,notepad++是文本编辑器自带各种语言的语法高亮,TDM-GCC是编译器。notepad++写代码,命令行调用gcc编译器编译代码(编译器选MinGW也可以,我用的是TDM,安装简单方便)。


热点内容
liunxsvn服务器搭建 发布:2025-02-11 00:15:31 浏览:698
p7空间存储空间其他 发布:2025-02-10 23:58:33 浏览:393
怎样把多个文件压缩 发布:2025-02-10 23:53:04 浏览:45
南山存储器设备供应商哪家质量好 发布:2025-02-10 23:46:50 浏览:417
安卓沼泽激战哪里下载 发布:2025-02-10 23:45:03 浏览:261
网站服务器如何连接光纤 发布:2025-02-10 23:42:29 浏览:730
组合键脚本 发布:2025-02-10 23:32:43 浏览:554
安卓篮球手游在哪里下 发布:2025-02-10 23:21:55 浏览:135
linux改变所有者 发布:2025-02-10 23:04:13 浏览:650
源码曹毅 发布:2025-02-10 23:04:01 浏览:582