了解的C/C++编译器如下: \x0d\GCC家族有 \x0d\Cygwin \x0d\Mingw32 \x0d\DJGPP \x0d\Dev-C++(Mingw32) \x0d\还有正宗的GNU GCC 2955~3004版本 \x0d\MS家族有 \x0d\MSC 50、60、70 \x0d\MSQC 10、25 \x0d\MSVC 10、42、60、70 \x0d\Borland家族有 \x0d\TC 10、20 \x0d\TC++ 101、30 \x0d\BC 30、31、40、45、50、502 \x0d\BCB 30、50、60 \x0d\其它有 \x0d\Intel C/C++ 50 \x0d\Watcom C/C++ 110、110c \x0d\VectorC 133 \x0d\IBM VisualAge for C++ \x0d\DigitalMars C/C++ \x0d\KAI C/C++ 403f for RedHat 72 \x0d\Lcc41 \x0d\LCC-WIN32 2001-09-25~2002-04-28日版 \x0d\Small C \x0d\CC386 \x0d\Pacific C \x0d\另外还有C的解释器 \x0d\Quincy \x0d\Eic \x0d\CINT \x0d\\x0d\上面提到的编译器/解释器,大部分我都使用过。现在固定使用VC70 Cygwin Mingw32 VectorC和LCC-WIN32这五种编译器。 \x0d\\x0d\在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 70(VCNET)是它的最新产品。Borland家族也不用说,大家也是耳熟能详。最近它才推出了BCB 60。 \x0d\\x0d\其它的编译器如: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收购了,已经停止开发了。Lcc41是个纯C的编译器它是开放源代码的。不过不怎么好用。LCC-WIN32是一个在LCC基础上开发的C语言的集成开发环境,很好用,而且有很详细的资料,FREE!Pacific C是一个纯DOS的C的集成开发环境,就不多说了。Small C CC386都是开放源代码的编译器,它们都很简单,应用来给大家学习编译器的。Quincy Eic CINT都是C的解释器,是用来让大家学习C语言的其中CINT的功能很强大,还支持一些C++的特性。 \x0d\当然还有很多其它的编译器,这里我给出的编译器都是可以在WIN32或DOS平台上用的(除KAI外)。UNIX平台上的编译器还是以GNU的为主,其它的我就不是很清楚了。 \x0d\\x0d\在以上的编译器中,最特别的就是VectorC这个东西只支持纯C。但它却号称是最快的编译器,不过经过我的试验,它的确在有些情况下强过其它编译器很多!而且它还有个交互式的优化器,可以让你直接看到C代码对映的汇编代码。Cygwin和Mingw32为一母所生,其运行效果相差不大。它们生成的代码效率都很不错,编译的速度也很快,最值得一提的是它们对C++的特性的支持算是所有编译器中最完全的,而且它们还支持C99的大部分特性。这一点很是不错!大家对MS的VC已经很熟悉了,本不用我多说。不过在它的最新的产品VC70中,有很大的改进。它对C++的特性的支持比60有了很大的提高,是我所用的编译器中是仅次于GCC的。而且它编译出的程序,运行速度很快!仅有少数时候次于VectorC与GCC,其它情况都是最快的!其平均运行速度是最快的。对Borland的产品我也无需多说。它的TC20与BC31都是我最喜欢的东西。可是现在的BCB却大不如前了,编译的速度和VC6一样慢!IDE还有较多的BUG。最令人想不通的是它生成的代码的运行速度很慢,比LCC-WIN32还慢!它唯一值得一提的就是它的RAD做的比MS的好。Intel的编译器大家可能不熟,它太贵了!还要有VC的支持,很不划算,而且编译速度比VC6还慢。不过它的代码质量很不错。DigitalMars C/C++没有什么亮点,编译速度较快,代码执行速度适中,对C++特性支持还算不错。LCC-WIN32是个很不错的集成开发环境,它只支持纯C。它的编译速度极快!代码执行速度较慢。不过它的最大亮点在于它的IDE,在所有的FREE编程工具中,它的IDE是最专业的,有很强大的代码分析,管理功能。而且它提供了大量的编程资料。 \x0d\我曾对一些编译器的代码执行效率做过一些测试,以下是概况: \x0d\1 VectorC、VC 70 (极快) \x0d\2 Intel C/C++、VC 60、GCC (很快) \x0d\3 DigitalMars C/C++ (一般) \x0d\4 LCC-WIN32、BCB、BC502 (较慢) \x0d\当然,我所做的测试比较片面。不过在很大程度上已能反映其大概状况。
写错了,应该是--host=i386-redhat-linux
--host是指定gcc运行的平台
你可以在一台linux pc上使用gcc -v看看别人的构建参数
开源软件的configure一般有3个比较关键的参数--build、--host和--target,--build表示编译该软件的平台,--host表示运行该软件的平台,--target表示该软件支持的平台。例如参数:--build=i386-redhat-linux-gnu --host=i386-redhat-linux-gnu --target=arm-linux,表示该gcc软件是在一台redhat的32位x86平台下编译,编译出来后,需要运行在x86 32位平台上,但是该编译器支持的平台是arm,即编译出来的程序是在arm上运行的。
在CentOS 7和RHEL 7系统上如何安装Gnu GCC编译器和相关的工具比如:autoconf,automake,flex, c++编译器等工具。我们可以通过在centos 或者rhel 7 系统上安装下面的软件包来搭建基本的开发环境。
autoconf
automake
binutils
bison
flex
gcc
gcc-c++
gettext
libtool
make
patch
pkgconfig
redhat-rpm-config
rpm-build
rpm-sign
显示当前系统的yum group,使用下面的命令:
yum group list
命令输出:
[root@itsprite /]# yum group list
Loaded plugins: fastestmirror, langpacks
There is no installed groups file
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
base: mirrorsbttenet
extras: mirrorsbttenet
updates: mirrorsbttenet
Available environment groups:
Minimal Install
Infrastructure Server
File and Print Server
Basic Web Server
Virtualization Host
Server with GUI
GNOME Desktop
KDE Plasma Workspaces
Development and Creative Workstation
Available Groups:
Compatibility Libraries
Console Internet Tools
Development Tools
Graphical Administration Tools
Legacy UNIX Compatibility
Scientific Support
Security Tools
Smart Card Support
System Administration Tools
System Management
Done
安装GCC和开发环境
输入下面的命令:
yum group install "Development Tools"
安装完之后,使用下面的命令来验证gcc是否安装成功:
whereis gcc
命令输出:
[root@itsprite /]# whereis gcc
gcc:/usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc1gz
输入下面的命令来查看gcc工具的版本:
[root@itsprite /]# gcc --version
gcc (GCC) 482 20140120(Red Hat 482-16)
Copyright (C)2013 Free Software Foundation, Inc
This is free software; see the source for copying conditions There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
测试GCC编译器
下面我们使用刚安装好的GCC编译器来编译一个c语言程序
创建下面的testc程序:
#include
int main(void){
printf("Hello World!\n");
return0;
}
输入命令编译testc 文件:
gcc testc -o test
执行编译后的文件:
/test
Hello World!
gcc -lm -o exec_file 03smoothing-fittingFIRc
-o是指要输出的执行文件名,而你直接用的是源文件名,所以,在编译时,03smoothing-fittingFIRc 被gcc给删除了(因为,输出文件要覆盖这个文件名)
一、工具篇
“公欲善其事,必先利其器”。编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工具。
1、 *** 作系统
在UNIX或Linux系统中学习C很方便,所以在开始您的学习旅程前请先选择一个UNIX或Linux *** 作系统,目前可供个人免费使用的UNIX或Linux系统有FreeBSD、RedHat Linux、SUSE Linux等,而且在安装包中还提供很多实用的工具,如:gcc, make等。
如果您一直使用Windows,身边又没有多余的机器安装UNIX,则可以使用VMware,通过VMware安装虚拟系统。
2、编译工具
目前绝大多数Unix或Lnux系统都提供CC或GCC编译器,最简单的cc命令格式如下:
cc -o hello helloc
在unix shell环境中敲入上面的代码会将helloc程序编译成可执行文件hello。
3、make工具
如 GNU make、System V make 和 Berkeley make 是用来组织应用程序编译过程的基本工具,但是每个 make 工具之间又有所不同。
大部分UNIX和Linux程序都是通过运行make来编译的。
make工具会读取一个包含指令的文件(这个文件的名字通常都是 makefile 或 Makefile,不过后文中我们统一称之为 “makefile”),并执行各种 *** 作来编译程序。
4、调试工具
最简单的调试工具:为你的程序添加打印语句,在你对程序的运行机制有了一定的了解后,你可以实用一些工具帮助你进行调试,当然你得学习一下这些工具得使用,如:dbx,gdb等。
还有一些内存工具可以帮你查找内存泄漏或缓冲区溢出等一些问题,如:memwatch,yamd等。
5、其他工具
1)vi或vim
Unix下文本编辑器。主要靠一堆命令来编辑文本文件,学Unix编程最好熟悉并熟练使用vi编辑器。
当然在实际工作中,你可能需要一个集成编码环境或一个功能强大的图形化编辑工具。
提供一个中文的vim在线手册:>
Linux *** 作系统中默认安装的C语言编译系统是GCC(GNU Compiler Collection),是Linux下最常用的C语言编译器,是GNU项目中符合ANSI,C标准的编译系统,能够编译用C、Object C等语言编写的程序。
同时它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula,3和Ada等。
C语言的标准
11 K,RC
1973年,Dennis M Ritchie设计和实现了C语言,从那以后使用者逐渐增加。
1978年,Kernighan 和 Ritchie 合著了《The C Programming Language》,这本书定义的C语言被称为 K,RC 。
12 标准 C
随着C语言使用日益广泛,出现了许多新问题,人们迫切希望对C语言进行标准化。
第一个标准:C89
1983年,ANSI成立了一个委员会X3J11,对C语言进行标准化。
1989年,ANSI 批准了第一个C语言标准 X3,159-1989,并于1990年公布,被称为 ANSIC、C89 或 C90。
1990年,这个标准又被批准为ISO标准:ISO,IEC 9899:1990 。
ANSIC标准被ISO采纳,并且ISO发布的修订版也被ANSI采纳,因此ANSI标准和ISO标准实际上没有技术区别。这些名称的含义是相同的:ANSI C、ISO C、标准C。
1994年和1996年,ISO发布了两个技术更正,更正了1990ISOC标准中的错误。
第二个标准:C94
1995年,ISO发布了1990ISOC标准的一个补充,称为AMD1。扩充后的标准被称为C94或C95。
第三个标准:C99
1999年,ISO发布了一个新版本的ISOC标准:ISO,IEC9899:1999,称为C99。
2001年、2004年和2007年,ISO发布了三个技术更正,更正了1999ISOC标准中的错误。
第四个标准:C11
2011年,ISO发布了一个新版本的ISOC标准:ISO,IEC9899:2011,称为C11。C11 是 C语言的最新标准。
13 GNUC
1984年,Richard Stallman 发起了GNU计划,它的目标是开发一个完整且自由的Unix-like *** 作系统(GNU系统)。
GNU系统是一个完整的 *** 作系统,包括 *** 作系统内核和各种工具软件。各种GNU系统的变种(例如Redhat、Ubuntu等)已经被广泛使用,它们使用的 *** 作系统内核都是Linux。虽然这些系统经常被称为Linux,但准确地说,它们是GNU/Linux系统。
GNU在编写Linux时扩展了标准C,称为GNUC。
GNU C的扩展详见:Extensions to the C Language Family
GNU C也称为Linux C,一般用于Linux上的开发,而标准C可以跨平台。
GNU C使用的编译器是GCC。
红帽linux中C语言编程调用数学函数参考案例如下所示:
当需要调用函数的个数比较少时,可以直接在main函数中包含该文件,比如一个文件夹下包含addc和mainc文件。
文件addc定义两个整数相加的函数,code如下:#include#includeintadd(inta,intb){intz;z=a+b;returnz;},主函数mainc的code如下:#include#include#include"addc"intmain(){inti,j,k;i=1;j=2;k=add(i,j);printf("iaddj=%d",k);},编译生成可执行文件:gcc-omainmainc,执行:/main。
以上就是关于大家都用什么C/C++编译环境全部的内容,包括:大家都用什么C/C++编译环境、linux gcc安装 编译gcc、如何安装GCC编译器和开发工具等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)