⑴ C语言编译器和IDE的选择
C语言编译器和IDE的选择是Windows的IDE使用Visual Studio或者Dev C++,XP或者Win7的IDE使用C-Free。Linux的IDE使用GCC,Mac OS X的IDE使用Xcode。
在Windows下,可执行程序(Executable Program)大部分是.exe程序,它是一系列计算机指令和数据的集合。这些指令都是二进制形式的,CPU可以直接识别,毫无障碍;但是对于程序员,它们非常晦涩,难以记忆和使用。
计算机发展初期,程序员就是使用这些二进制形式的CPU指令来编写程序的。
直接使用CPU指令编程对程序员来说简直是噩梦,尤其是当程序比较大的时候,不但编写麻烦,需要频繁查询指令手册,而且除错会异常苦恼,要直接面对一堆二进制数据,让人眼花缭乱。另外,用CPU指令编程步骤繁琐,要考虑各种边界情况和底层问题,开发效率十分低下。
这就倒逼程序员开发出了编程语言,提高自己的生产力;例如汇编、C语言、C++、java、Python、Go语言等,都是在逐步提高开发效率。至此,编程终于不再是只有极客能做的事情了,不了解计算机的读者经过一定的训练也可以编写出有模有样的程序。
选择合适的IDE:
实际开发中,除了编译器是必须的工具,我们往往还需要很多其他辅助软件,例如编辑器、调试器、文件管理等,这些工具通常被打包在一起,统一发布和安装。
例如Visual Studio、Dev C++、Xcode、Visual C++6.0、Code:Blocks、C-Free等,它们统称为IDE(Integrated Development Environment,集成开发环境)。
1、Windows:
Windows下的IDE比较多,我推荐使用Visual Studio或者Dev C++;如果你的操作系统是XP或者Win7,你也可以使用C-Free。另外,国内很多高校还在使用Visual C++6.0,把它作为C语言教学的工具。
①Visual C++6.0(简称VC6.0)是微软开发的一款经典的IDE,很多高校都以VC6.0为教学工具来讲解C和C++。但VC6.0是1998年的产品,很古老了,在Win7、Win8、Win10下会有各种各样的兼容性问题,甚至根本不能运行,所以不推荐使用。
②Visual Studio(简称VS)是Visual C++6.0的升级版,增加了很多新特性,支持了更多的语言,是Windows下的标准IDE,实际开发中大家也都在使用。不过VS有点庞大,安装包有2~3G,下载不便,而且会安装很多暂时用不到的工具,安装时间在半个小时左右。
为了适应最新的Windows操作系统,微软每隔一段时间(一般是一两年)就会对VS进行升级。VS的不同版本以发布年份命名,例如VS2010是微软于2010年发布的,VS2017是微软于2017年发布的。
③Dev C++是一款免费开源的C/C++IDE,内嵌GCC编译器(GCC编译器的Windows移植版),是NOI、NOIP等比赛的指定工具。Dev C++的优点是体积小(只有几十兆)、安装卸载方便、学习成本低,缺点是调试功能弱。
NOI是National Olympiad in Informatics的缩写,译为“全国青少年信息学奥林匹克竞赛”;NOIP是National Olympiad in informatics in Provinces的缩写,译为“全国青少年信息学奥林匹克联赛”。
NOI、NOIP都是奥林匹克竞赛的一种,参加者多为高中生,获奖者将被保送到名牌大学或者得到高考加分资格。
④C-Free是一款国产的Windows下的C/C++IDE,最新版本是5.0,整个软件才14M,非常轻巧,安装也简单,界面也比Dev C++漂亮。C-Free的缺点也是调试功能弱。
可惜的是,C-Free已经多年不更新了,组件都老了,只能在XP、Win7下运行,在Win8、Win10下可能会存在兼容性问题,所以我才重点推荐Dev C++,否则我会更加倾向于C-Free。
本教程的目录中只列出了VS2010、VS2015、Dev C++的安装和使用,希望尝试C-Free和VC6.0读者请猛击《在C-Free下运行C语言程序》《在VC6.0下运行C语言程序》。
2、Linux:
在Linux下使用GCC(GNU Compiler Collection,GNU编译器套件)。GCC是GUN组织开发的自由软件,除了支持C,还支持C++、Java、Objective-C等,它是Linux平台编译器的事实标准。
3、Mac OS X:
在Mac OS X下使用Xcode。Xcode是由Apple官方开发的IDE,支持C、C++、Objective-C、Swift等,可以用来开发Mac OS X和iOS上的应用程序。
Xcode最初使用GCC作为编译器,后来由于GCC的不配合,改用LLVM/Clang。虽然C语言的IDE众多,但是C语言的绝大部分内容在各个IDE下都是通用的。
⑵ C语言编程需要在什么环境下运行
C语言编程需要在C编译器环境下运行。C编译器的作用是将C语言源代码转换成可执行代码。在Windows操作系统中,开发者可以利用VisualStudio或Code::Blocks等集成开发环境(IDE)来编写C语言程序,并进行编译。这些IDE不仅提供了文本编辑功能,还包含了编译器和调试器等工具,使得编程过程更加高效和便捷。
对于Linux系统用户来说,GCC(GNU Compiler Collection)是常用的C语言编译器。GCC不仅能够编译C语言代码,还支持C++、Java等多种编程语言,具有广泛的兼容性和灵活性。用户可以在Linux系统中安装GCC编译器,之后就可以利用它来编译C语言程序。
无论是Windows还是Linux系统,用户都需要先安装相应的C编译器,然后在编译器提供的开发环境中进行C语言编程和编译。这样的设置能够确保程序的正确性和稳定性,同时也有利于后续的调试和优化工作。
开发环境的配置对于C语言编程来说至关重要。安装了C编译器后,用户可以在IDE中创建项目,编写源代码,并利用编译器进行编译。在编译过程中,如果代码中存在错误,编译器会生成错误报告,帮助开发者定位问题。此外,IDE中的调试器可以用来执行和调试程序,进一步优化代码性能。
总结起来,C语言编程的运行环境主要包括C编译器和集成开发环境。用户可以选择适合自己的操作系统和开发工具,安装相应的编译器,并在开发环境中编写和编译C语言程序。通过这种方式,开发者可以高效地完成C语言编程任务,确保程序的正确性和可靠性。
⑶ C++之IDE和编译器的区别
C++的IDE与编译器的区别:
IDE(Integrated Development Environment)指整合开发环境,也就是用于编辑程式码、开发程式的应用程式,一般包含程式码编辑器与编译器等。C++的IDE有Visual C++6.0、GUIDE等;
编译器(Compiler),则是用于将高阶程式语言程式码翻译成目的码(如机器语言)的程式。C++的编译器是g++。
上面说了,IDE一般包含编译器,也就是说编译器一般属于IDE的一部分。在IDE中可编辑、编译程式码,而编译器只能编译程式码。
ide包括编译器
你描述的IDE是自带了编译器的IDE。
仍有一些IDE只有开发环境,编译器需要另外指定,比如codeblocks,这个IDE可以使用g或者vs编译器或者别的。
还有个例子就是eclipse,本身并不带编译器,需要额外指定。
很明显是Visual c++好,Visual c++功能比Turbo c 2.0强大的多. 两个开发环境的针对性不同,Turbo c 2.0主要针对C进行开发,而Visual c++主要针对C++,但我觉得Visual c++开发C++和C都是很好的工具. Turbo c 2.0比较适合刚刚接触C语言的人来使用,Visual c++可以说是从事商业开发的有效工具
C++的时编译成机器程式码,java的时位元组码,就是虚拟指令,只能在java虚拟上执行。
c++的设计者说过,c++的设计目标是保留c语言的长处如:系统程式设计特性,执行快速快等,再新增上面向物件特性。
语言的特性决定编译器的特点。核心的区别也就上面一句话,具体的差别那得几本书来说明。c编译器通常只编译c档案,c++编译器可以同时编译c和c++档案。
包含关系。
IDE(Integrated Development Environment)指整合开发环境,可以用来编辑程式码,包含有编译器。一般现在最常用的就是VC++和Visual Studio了。
编译器(Compiler),则是用于将高阶程式语言程式码翻译成目的码(如机器语言)的程式。C++一般是g++
1. IDE与硬体平台有关。不同IDE携带的编译器不同。
2. 当然有关。不是半导体厂家提供的,而是编译器开发厂商提供的,也有很多开源的编译器。
3. 有关系。目前最常见的编译器仍然只支援C/C++,宴歼C#的编译器较少而且据说仍不完善。至于Java……哈哈,这种二道贩子还需要劳烦编译器?
4. 可以整合。具体的你需要查阅相应IDE的手册,看看能够整合晌逗冲/新增哪些编译器。
5. 关心到架构就可以。厂商自己扩充套件的东西多半就是些对映,你看厂商的外设就行;而且很多厂商都提供了易于开发的库(当然他们的库也都是够烂的,用熟了以后就可以扔掉)。
6. 是否用作业系统不影响编译器,整体而言也不影响IDE;当然IDE中如果能够新增针对作业系统元件的原生支援(重点是除错方面),用起来就更方便。
优化方式理论上跟编译器和硬体都有关联。程式码级别的优化,要看所使用的编译器实现,Xcode用的是clang,VS用的是windows自己的编译器。。。
汇编级别(指令级别)的优化,要根据硬体对应的指令集实现,指令集根据CPU型别的不同而不同。。。
g++编译时实际上是呼叫g进行编译;
g不能自动连结库档案,一般用g++来连结库档案,非要用g的话,一般使用g -lstdc++命令;
extern “c”对于g和g++没有区别;
实际使用时只需安装g和g++中的一个就行了,如果使用g,编译直接用g就行了,连结要加上-lstdc++引数;如果使用g++,编译时实际还是呼叫g,连结直接使用g++即可;
关于包含库档案标头档案的说明:以gtd库档案为例,库档案一般是libgtd.so格式的档案,如果是libgtd-***.so或者其他格式,可以通过软连结命令转化成libgtd.so格式,ln
-s libgtd-***.so
libgtd.so。一般库档案如果是放在/lib,/usr/lib,/usr/local/lib目录下,则无需额外处理,编译连结时-lgtd会自动找到对应档案不会报错,但是如果不在对应目录,则需要加上-L
/所在目录
-lgtd才能找到对应的库档案。标头档案一般是采用原始档中用#include命令包含,而不是采用-include引数包含,标头档案如果放在/usr/include目录下则会自动找到不会报错,否则编译连结时需要使用-I
/所在目录才能正确找到。
编译连结命令示例:
g++ test.cpp -o test.txt -L /mytest/lib -lgtd -I /mytest/include