-- 作者 谢恩铭 转载请注明出处


《C++探索之旅》全系列

内容简介


  1. 前言
  2. 编程的必要工具
  3. 选择你的IDE
  4. 总结
  5. 第一部分第三课预告

1. 前言


经过上一课 C++探索之旅 | 第一部分第一课:什么是C++ 之后,大家是不是摩拳擦掌,准备大干一场了呢。

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

2. 编程的必要工具


依你看,对编程来说,什么软件是必要的呢?

如果你认真学了上一课,那你至少可以说出一种吧。

对了,就是编译器。这个重要的程序可以把你的源代码(用高级语言如 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 OS,Windows,Linux等),自由定制,各种快捷键组合,收发邮件,看视频,浏览网页,浏览 PDF,没有你做不到,只有想不到(略有夸张...),可以让你编辑代码非常高效。我之前使用的是 Vim,也是很不错的,但是后来用了 Emacs ( Emacs,最强编辑器,没有之一 ),感觉还是更喜欢 Emacs一些。现在我两者都用。还有例如 Atom,Sublime,Notepad++ 也是挺好的,经过配置和安装一些插件,可以很强大。

  • 编译器 :已经提过了,用来转换(或叫编译)你的源代码成为二进制码。

  • 调试器 :Debugger,用来跟踪、发现程序里的错误的工具。这里出现一个新名词,调试(Debug)。bug 是英语臭虫,虫子的意思,de 在英语里是一个表示「分离,除掉」的前缀,所以 Debug 的意思就是除臭虫。一般把程序里的错误或者缺陷叫做 bug(臭虫),据说是因为传奇女程序员 Grace Hopper(格莱斯.霍普)有一次在 MARK II 计算机(就是那种早期的比较庞大的电脑)中发现了一只飞蛾,这只飞蛾导致了这台电脑死机(夹在电脑里的继电器之间),霍普用镊子把飞蛾夹出来,用透明胶布贴到笔记本上,并注明「第一个发现虫子(bug)的实例」。从此,人们就沿用了这个称呼,用debug表示排除程序错误的行为。现在霍普的笔记本,连同那只「呆萌」的飞蛾,陈列在美国历史博物馆里。

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

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

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

  1. 分开使用文本编辑器,编译器和调试器这三种工具。虽然复杂一些,但是也行得通。特别在 Linux 环境下,不少程序员还是喜欢用这种方式来编程,可能不是装,要的就是这个 feel,倍儿爽。

  2. 使用一种软件,这种软件集合了这三种工具的功能。这种软件被称为IDE(Integrated Development Environment,集成开发环境)。

一开始你可能会难以抉择,到底用哪种呢?即使选择了用 IDE,也会纠结到底用哪一个 IDE 好呢。

其实我们可以肯定的是:不论你选择哪种工具,你都可以编写你想要的程序。只是效率、个人习惯和特定平台要求不同罢了。

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

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

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

3. 选择你的IDE


我们觉得有必要向大家展示几个最著名的 IDE,这几个都是免费的:

  • Code::Blocks :个人比较喜欢的一款 IDE,免费,开源,跨平台。在之后的课程里,我们会用 Code::Blocks 来做开发,因为 Code::Blocks 的开发环境搭建起来太快了,不需要什么配置。
    可以运行在苹果 Mac OS,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 的官方下载页面:www.codeblocks.org/downloads/b…

  • Windows 用户请下载 .exe 结尾的文件,请注意要下载名字里有 mingw 的那个(比如 codeblocks-16.01mingw-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,等等。

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

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

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

点击 Next 到下一步:

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

Visual Studio


下载 Visual Studio Express,去官方下载页面 www.visualstudio.com/products/vi…

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

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

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

Xcode


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

不是所有的苹果用户都是程序员,所以苹果没有在 Mac OS 系统里预装 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!」:

4. 总结


  1. 一个程序要从开始编写到能够运行,一般来说需要三种工具:文本编辑器,编译器,调试器(当然对于 Python 这样的解释性语言,就不需要编译了)。

  2. 我们可以分开使用这三种工具来完成任务。但是比较方便的是使用 IDE(集成开发环境,混合了这三者)来开发。

  3. Code::Blocks,Visual Studio(或 Visual C++),Xcode 是著名的 IDE,当然还有很多优秀的 IDE(例如 Eclipse),就不一一介绍了。IDE 只是工具。

5. 第一部分第三课预告


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

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


微信公众号「程序员联盟」ProgrammerLeague
我是谢恩铭,在巴黎奋斗的软件工程师。
我的简介
我的经历
热爱生活,喜欢游泳,略懂烹饪。
人生格言:「向着标杆直跑」

C++ 探索之旅 | 第一部分第二课:C++ 编程的必要软件相关推荐

  1. Linux 探索之旅 | 第一部分第二课:下载 Linux,免费的噢

    -- 作者 谢恩铭 转载请注明出处 内容简介 第一部分第二课:下载Linux,免费的噢 第一部分第三课预告:测试并安装Ubuntu 下载Linux,免费的噢 大家好,上一课 Linux探索之旅 | 开 ...

  2. Python探索之旅 | 第一部分第二课:安装Python和Python的常用开发软件

    作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub). 转载请注明出处. 原文:https://www.jianshu.com/p/68fcd46254f5 <Python探索之旅&g ...

  3. C语言探索之旅 | 第一部分第二课:工欲善其事,必先利其器

    -- 作者 谢恩铭 转载请注明出处 上一课C语言探索之旅 | 开宗明义及第一部分第一课:什么是编程?中,我们说了,程序员需要具备三个特质: 耐心,逻辑,冷静. 我突然感觉到还需要第四大特质---谦虚 ...

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

    作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub). 转载请注明出处. 原文:https://www.jianshu.com/p/bcdfbf661888 <C++探索之旅>全 ...

  5. C语言探索之旅 | 第一部分第三课:你的第一个程序

    作者 谢恩铭,公众号「程序员联盟」. 转载请注明出处. 原文:https://www.jianshu.com/p/c73fecacd006 <C语言探索之旅>全系列 内容简介 前言 控制台 ...

  6. C++ 探索之旅 | 第一部分第一课:什么是 C++

    -- 作者 谢恩铭 转载请注明出处 <C++探索之旅>全系列 内容简介 开宗明义 什么是C++ 什么是程序 编程语言 C++与其他语言的比较 C++的历史 C++经典书籍 总结 第一部分第 ...

  7. C++探索之旅 | 第一部分第一课:什么是C++

    作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub). 转载请注明出处. 原文:https://www.jianshu.com/p/a8c3a44f57ef <C++探索之旅>全 ...

  8. c语言min函数_C语言探索之旅 | 第一部分第十课:第一个C语言小游戏

    内容简介 前言 准备工作和建议 我的代码 改进方案 第一部分第十一课预告 1. 前言 上一课是 C语言探索之旅 | 第一部分第九课:循环语句 . 经过前面这么多课的努力,我们终于迎来了第一个比较正式的 ...

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

    内容简介 1.第一部分第二课:C++编程的必要软件 2.第一部分第三课预告:第一个C++程序 C++编程的必要软件 经过上一课之后,大家是不是摩拳擦掌,准备大干一场了呢. 这一课我们来做一些C++开发 ...

最新文章

  1. 京东智能情感客服挽救一名学生生命,“可信赖的AI”用温暖前行
  2. 如何利用Partitioner将消息路由到分区?
  3. 谷歌浏览器翻译插件 saladict:沙拉查词
  4. spring 依赖注入的3种方式
  5. CentOs Linux 文件位置标记
  6. python3编码命名规范_Python代码规范和命名规范
  7. 你们还在用8位单片机吗?
  8. mysql having ct_mysql中where和having子句的区别和具体用法
  9. Vicor再携创新产品“登陆”ODCC大会,有详情!
  10. 【Es】Es 集群设置分片很大导致集群无法选举主节点异常等
  11. Linux系统管理-(12)-网络配置IP命令
  12. jquery 后代元素_在jQuery中查找元素的所有后代
  13. 致产品经理:是时候要学学编程了!
  14. 圆通快递单号yt开头_乡镇快递取件二次收费,四川省消委会点名这些快递公司...
  15. 我们需要什么样的应急手册(佐岸)
  16. 上银驱动器使用手册_上银伺服电机调试说明书PPT课件
  17. 【i.MX6ULL】驱动开发12——电容触摸驱动实践(上)
  18. MagicDraw-包图
  19. libx264开发笔记(一):libx264介绍、海思平台移植编译
  20. 测试apk-异常管控NetTraffic攻击者开发

热门文章

  1. 辽宁大学计算机测控技术专业排名,测控技术与仪器专业大学排名
  2. Android实例开发中登录注册界面的框架实现(android studio)
  3. Pygame详解:前言
  4. Linux报错-ssh_exchange_identi...
  5. 秉火429笔记之五控制RGB彩灯
  6. 从专业角度说说修仙游戏应该怎么做
  7. 华硕vm510l最大支持多大内存_华硕vm510l与w519l区别
  8. 关于手机开发的一些比较基础的知识
  9. There is a cycle in the hierarchy
  10. python两列时间间隔计算器_python时间差计算器时分秒_python 实现日期计算器