【C++探索之旅】第一部分第二课:C++编程的必要软件




内容简介

1、第一部分第二课:C++编程的必要软件

2、第一部分第三课预告:第一个C++程序


C++编程的必要软件

经过上一课之后,大家是不是摩拳擦掌,准备大干一场了呢。

这一课我们来做一些C++开发前的准备工作。



编程的必要工具

依你看,什么软件对编程来说是必要的呢?如果你认真学了上一课,那你至少可以说出一种吧。

对了,就是编译器。这个重要的程序可以把你的源代码(用高级语言如C语言写的指令)转换成电脑可以理解的二进制码(只包含0和1的,类似 01100110001111011101010...)。

上一课我们也提了一下,每种高级语言都有对应的编译器(当然对于Python这样的解释性语言,就不需要编译了),光是C++语言的编译器就有很多。比较常用的有G++(GNU C++ Compiler。GNU是国际著名的自由软件基金会,GNU是“GNU is Not Unix” (GNU不是Unix)的递归缩写法,老外总是那么顽皮,起名字也喜欢整一些编程的知识,比如Linux就是“Linux Is Not Unix”(Linux不是Unix)的递归。要不就用很多动物的名字或图标,特别好玩)。

除了编译器,我们还需要什么工具呢?

就不卖关子了,下面列出编程的基本工具:

  • 文本编辑器:用来写源代码的工具。理论上Windows操作系统的记事本或者Linux下的VI编辑器都可以作为文本编辑器来使用。但是,最好还是用一些更高级点的文本编辑器,比如可以支持代码高亮显示,方便你在代码间跳转等。个人非常推荐的文本编辑器是Emacs,真的非常强,跨平台(苹果Mac,Windows,Linux等),自由定制,各种快捷键组合,收发邮件,看视频,浏览网页,浏览PDF,没有你做不到,只有想不到(略有夸张...),可以让你编辑代码非常高效。我之前使用的是VIM,也是很不错的,但是后来用了Emacs,感觉还是更喜欢Emacs一些。当然这见仁见智。还有一个文本编辑器:Notepad++也是挺好的,经过配置和安装一些插件,可以很强大,不过貌似没有苹果电脑版本。
  • 编译器:已经提过了,用来转换(或叫编译)你的源代码成为二进制码。
  • 调试器:Debugger,用来跟踪、发现程序里的错误的工具。这里出现一个新名词,调试(Debug)。bug是英语臭虫,虫子的意思,de在英语里是一个表示“分离,除掉”的前缀,所以Debug的意思就是除臭虫。一般把程序里的错误或者缺陷叫做bug(臭虫),据说是因为传奇女程序员Grace Hopper(格莱斯.霍普)有一次在MARK II计算机(就是那种早期的比较庞大的电脑)中发现了一只飞蛾,这只飞蛾导致了这台电脑死机(夹在电脑里的继电器之间),霍普用镊子把飞蛾夹出来,用透明胶布贴到笔记本上,并注明“第一个发现虫子(bug)的实例”。从此,人们就沿用了这个称呼,用debug表示排除程序错误的行为。现在霍普的笔记本,连同那只呆萌的飞蛾,陈列在美国历史博物馆里。

?

霍普的笔记本和光荣载入历史的飞蛾

当然,如果你有冒险精神,喜欢挑战,也可以不用调试器(通过一些小技巧也是可以自己找到错误所在的)。但是,我想一般来说你是会需要调试器的。

所以,我们就有两个选择了:

  • 分开使用文本编辑器,编译器和调试器这三种工具。虽然复杂一些,但是也行得通。特别在Linux环境下,不少程序员还是喜欢用这种方式来编程,可能不是装,要的就是这个feel,倍爽。
  • 使用一种软件,这种软件集合了这三种工具的功能。这种软件被称为IDE(Integrated Development Environment 集成开发环境)。

一开始你可能会难以抉择,到底用哪种呢?即使选择了用IDE,也会纠结到底用哪一个IDE好呢。其实我们可以肯定的是:不论你选择哪种工具,你都可以编写你想要的程序。只是效率,个人习惯和特定平台要求不同罢了。

个人浅见:

如果刚接触C++语言,尽量在Linux的命令行里学习C++语言编程。一开始不要过分依赖IDE。

因为IDE做得太好了,都有提示,代码自动补全,自动帮你添加代码,你就不能学到很多,也记不牢。等编程水平好了一些,再用IDE不迟,那个时候IDE可以提高你的编程效率。一开始用emacs或者vim编写C++语言,用G++编译C++语言,用GDB(GNU Debugger)调试C++语言,是不错的选择。

当然了,我们还是会花比较多的篇幅介绍几个常用的IDE。



选择你的IDE

我们觉得有必要向大家展示几个最著名的IDE,这几个都是免费的(只买对的,不选贵的)

  • Code::Blocks:个人比较喜欢的一款IDE,免费,开源,跨平台。在之后的课程里,我们会用Code::Blocks来做开发,因为Code::Blocks的开发环境搭建起来太快了,不需要什么配置。

    可以运行在苹果Mac,Windows,Linux等大多数操作系统上

  • Visual Studio:基础版本是收费的。但是幸好有一个Visual Studio Express的版本是免费的。VS功能很完备,而且调试器很强大。

    只能运行在Windows操作系统上

  • Xcode:作为苹果的当家IDE,不得不说Xcode真的做得太棒了。可以用来开发基本的小程序,也可以编写iPhone和iPad的App(模拟器速度超快),和智能手表应用,还可以和其他如Unity 3D引擎配合来编写游戏。

    只能运行在苹果Mac OS X操作系统上

Code::Blocks

Code::Blocks是一款很不错的IDE,不过目前只有英文版,当然网上也有汉化版本,不过既然学编程,就尽量把英语这关过了,也不需要太厉害的英语,基础就好。毕竟汉化版有的翻译不到位,可能会影响使用。而且好的编程资源基本都是英语的。

下载Code::Blocks

先去Code::Blocks的官方下载页面:http://www.codeblocks.org/downloads/binaries

  • Windows用户请下载 .exe 的文件,请注意要下载名字里有 mingw 的那个(codeblocks-13.12mingw-setup.exe),因为如果没有mingw这几个字母的版本不包含编译器,就会很麻烦。
  • Linux用户请下载对应你的操作系统的版本
  • 苹果Mac用户请下载 CodeBlocks-13.12-mac.zip

安装运行Code::Blocks

Code::Blocks的安装太简单了,就跟安装QQ没什么区别,一路默认到底就好。

安装完之后双击运行,你可以看到如下图的界面

上图中标注了四个区域:

  1. 工具栏:有很多按钮,但只有几个是真正我们时常用到的。
  2. 项目文件列表区:左边的栏里面显示了你的项目的所有文件
  3. 主界面:写代码的地方
  4. 通知栏:会看到运行的错误,编译的问题等等

如何来创建一个C++语言的基本的控制台应用程序呢?

首先到菜单里,File -> New -> Project,会打开如下的窗口

可以看到,Code::Blocks支持非常多的程序类型,这些程序类型用到不同的库,比如SDL(开发2D程序),OpenGL(开发3D程序),Qt和wxWidgets,等等。

目前,这些图标很多都只是好看而已,因为你还没安装对应的库,所有不能用。我们会在后续课程开发基于SDL库的游戏。暂时我们只用最基本的Console application(控制台应用,简单来说就是会弹出一个框,里面显示程序运行的结果)。

选择 Console application,点击Go按钮到下一步

“Project Title”里面填写你要创建的项目名称,我们填的是著名的 HelloWorld。“Folder to create project in” 是选择项目存放的路径。

点击Next到下一步,

这里我们不必更改什么,默认就好。点击Finish(完成)结束配置,Code::Blocks就会创建你的第一个项目了。

Visual Studio

下载 Visual Studio Express,去官方下载页面 http://www.visualstudio.com/products/visual-studio-express-vs

选择适合你的操作系统的版本来下载。

因为小编是在苹果电脑上编辑文章的,所以就不多做演示了。请大家去参考网上的安装和使用图文教程。

安装完运行后应该是与Code::Blocks类似的布局:

Xcode

Mac操作系统里有不少IDE,但是Xcode却是广大苹果用户的最爱。

不是所有的苹果用户都是程序员,所以苹果没有在Mac系统里预装Xcode,你需要到Mac App Store(应用商店)下载Xcode(需要有苹果账户,没有可以注册一个)。

安装很方便,只要去App Store搜索Xcode,然后点击Install(安装),就安装到应用程序里了。将Xcode运行起来

然后选择 Create a new Xcode project(创建一个新的Xcode项目),会弹出如下窗口

选择 OS X -> Application -> Command Line Tool,点击Next到下一步

Project Name里填写项目名称,我们填了HelloWorld。Language(语言)选择 C++ 语言,点Next下一步,会让你选择项目文件夹的存放路径,随便选择。然后点击Finish完成。

项目打开之后,点击 三角形 按钮,运行,可以看到输出了 Hello World!



总结

  1. 一个程序要从开始编写到能够运行,一般来说需要三种工具:文本编辑器,编译器,调试器(当然对于Python这样的解释性语言,就不需要编译了)
  2. 我们可以分开使用这三种工具来完成任务。但是比较方便的是使用IDE(集成开发环境,混合了这三者)来开发。
  3. Code::Blocks,Visual Studio(或Visual C++),Xcode是最著名的IDE,当然还有很多优秀的IDE(例如 Eclipse),就不一一介绍了。IDE只是工具。

第一部分第三课预告

今天的课就到这里,一起加油吧!

下一课我们学习:第一个C++程序


程序员联盟社区

目前有一个微信群和一个QQ群(微信群160人以上,QQ群530人以上),凡是对编程感兴趣的朋友都可以加,大家可以交流,学习,互动,讨论编写的程序的源代码,编程问答等。

微信群(程序员联盟),加群请私信我(微信群人数超过100之后,不能通过扫描二维码加入了,只能私信我,谢谢)

QQ群: 413981577 (1000人群)

QQ群文件里有很多编程书籍PDF和其他资料。扫描下面二维码加QQ:

我们还建立了一个公共的百度云盘,2TB容量,已有很多优秀编程资源,大家也可以上传。链接加群之后会发送。

百度贴吧 【程序员联盟】 欢迎您加入,交流编程,讨论代码,共享资源,已经有很多话题。吧主就是小编。

http://tieba.baidu.com/f?kw=%E7%A8%8B%E5%BA%8F%E5%91%98%E8%81%94%E7%9B%9F&ie=utf-8

点击左下角【阅读原文】即可进入 【程序员联盟】 百度贴吧

《程序员联盟》的微社区,方便大家提问和互动。可以关注一下。

微社区地址和二维码如下:

http://m.wsq.qq.com/264152148

谢谢!



程序员联盟
微信公众号*您若觉得本文不错,请点击画面右上角《···》按钮“分享到朋友圈”或“发送给朋友”

*新朋友请关注「程序员联盟」微信搜公众号
 ProgrammerLeague

小编微信号:

frogoscar

小编QQ号:  379641629

小编邮箱:    [email protected]

程序员联盟QQ群:413981577

程序员联盟微信群:先加我微信

有朋友反映看手机端的文章太累,其实是可以用浏览器网页来看的:

方法1. 点击画面右上角的《···》按钮,然后选择“复制链接”,再把链接黏贴到你的浏览器里面或用邮件发送给自己,就可以在电脑的浏览器里打开了

方法2. 头条网www.toutiao.com,搜索我的自媒体“程序员联盟”,内有所有文章,也可以直接进这个链接:http://www.toutiao.com/m3750422747/

方法3. 我的51CTO博客,CSDN博客和博客园链接(所有文章都在上面)

http://4526621.blog.51cto.com

http://blog.csdn.net/frogoscar

www.cnblogs.com/frogoscar

如何查看所有文章

点击“查看公众号”,再点击“查看历史消息

时间: 2024-12-14 18:54:47

【C++探索之旅】第一部分第二课:C++编程的必要软件的相关文章

【Linux探索之旅】第一部分第二课:下载Linux,免费的噢

 内容简介 1.第一部分第二课:下载Linux,免费的噢 2.第一部分第三课预告:测试并安装Ubuntu 下载Linux,免费的噢 大家好,上一课我们认识了非常"霸气侧漏"的Linux操作系统. 也知道了它的吉祥物:企鹅,叫Tux(燕尾服的意思),而且它是一只雄性的企鹅,爷们,24K纯滴.(这个不重要好不,小编...) 我们还提到了什么是操作系统,Linux的历史和不同的Linux发行版.也确定了我们后续课程要使用的Linux发行版:Ubuntu.幸好,在各个Linux发行版(每个发

【C语言探索之旅】 第三课:你的第一个程序

内容简介 1.课程大纲 2.第一部分第三课:你的第一个程序 3.第一部分第四课预告:变量的世界 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算符 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型 文件读写

【Linux探索之旅】第一部分第五课:Unity桌面,人生若只如初见

内容简介 1.第一部分第五课:Unity桌面,人生若只如初见 2.第一部分第六课预告:Linux如何安装在虚拟机中 Unity桌面,人生若只如初见 不容易啊,经过了前几课的学习,我们认识了Linux是什么,以及如何安装Linux系统(我们以Ubuntu这个Linux发行版为以后的演示系统),我们也在上一课终于把Ubuntu安装好了. "很不错,掌声给自己". 安装Ubuntu遇到什么问题,可以在我们的QQ群和微信群提问,也可以私信小编,QQ.微信.邮件都行.联系方式在下面. Linux

【Linux探索之旅】开宗明义+第一部分第一课:什么是Linux?

内容简介 1.课程大纲 2.第一部分第一课:什么是Linux? 3.第一部分第二课预告:下载Linux,免费的噢!   开宗明义 我们总听到别人说:Linux挺复杂的,是给那些追求逼格的程序员用的.咱们老百姓呀,用用Windows就高兴. 但事实并非如此,Linux不是那么“难于上青天”的. 不少学编程的朋友看过<鸟哥的Linux私房菜>,是台湾的鸟哥写的,非常棒. 小编也开始写一个系列教程,希望对自己对别人都有帮助.但我会非常认真的,不会乱来. 在这个教程中,小编会向您证明:Linux并不复

【C++探索之旅】开宗明义+第一部分第一课:什么是C++?

内容简介 1.课程大纲 2.第一部分第一课:什么是C++? 3.第一部分第二课预告:C++编程的必要软件 开宗明义 亲爱的读者,您是否对C++感兴趣,但是C++看起来很难,或者别人对你说C++挺难的,你不知道如何入门? 别担心,这个系列教程就是为C++初学者准备的. 不可否认,C++是一门非常著名的语言.几乎学计算机的同学都难免要碰一下C++,中国的大学课堂一般也是先学C语言入门,然后就是Java或者C++. C++ 这门语言的使用很广泛,特别是在游戏开发领域,C++的性能和无限可能性使得其几乎

【C语言探索之旅】 开宗明义及第一课:什么是编程?

内容简介 1.课程大纲 2.第一部分第一课:什么是编程? 3.第一部分第二课预告:工欲善其事,必先利其器 ? 课程大纲 不知道为什么,一直对C语言有一种很深厚的"情怀"(类似老罗对锤子手机的那种),说不出来. 也许因为C语言是很多前辈谆谆教诲说一定要学一下的一门编程语言:也许因为C语言是自己学习的专业"嵌入式系统"的首要语言:也许因为C语言自1972年诞生以来历经43年依然独领风骚,位列编程语言排行榜首位:也许因为"C语言之难,难于上青天",自己

【C语言探索之旅】 第二课:工欲善其事,必先利其器

内容简介 1.课程大纲 2.第一部分第二课:工欲善其事,必先利其器 3.第一部分第三课预告:你的第一个程序 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算符 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型

【Web探索之旅】第一部分:什么是Web?

内容简介 1.Web探索之旅:开宗明义 2.第一部分第一课:什么是Web? 3.第一部分第二课:Web,服务和云 4.第一部分第三课:Web的诞生史 Web探索之旅:开宗明义 大家好. 我们这个系列课程相对比较简单,比[C语言探索之旅],[C++探索之旅],[Linux探索之旅],[TCP/IP网络探索之旅]简单,会让大家在轻松中理解关于Web的方方面面. 您是否对Web感兴趣但是不知道什么是Web呢? 您是否觉得"网络黑客"很神秘? 您是否不清楚Internet和Web有什么区别?

TCP/IP 网络精讲:OSI七层模型(第二课)

内容简介 1.前言 2.第一部分第二课:互联网的创立,OSI七层模型 3.第一部分第三课预告:OSI第一层,连接你的机器 前言 PS:昨天做了课程大纲之后,发现这个坑挖得有点大.不过既然挖了,岂有不跳之理.男子汉一言既出,就什么马也难追了. 今天我们就来学习: <OSI七层模型> 昨天说到,目前全球有18亿网民,互联网的规模已经是超乎想象般宏大. 那么问题来了: 我们怎么实现在这么多的机器之间通信呢? 怎么能够不在这数据的迷宫里失去方向呢? 我们一起来学习,以期找到问题的答案. 首先我们来理解