Linux教程:如何在Linux下进行C++开发?

Linux是一类Unix计算机操作系统的统称,Linux操作系统的内核的名字也是“Linux”, 在Linux下进行C++开发,需要注意许多问题,比如:减少不必要的编辑动作,减少编辑的时间。

  Windows下,开发工具多以集成开发环境IDE的形式展现给最终用户。例如,VS2005集成了编辑器,宏汇编ml,C /C++编译器cl,资源编译器rc,调试器,文档生成工具, nmake。它们以集成方式提供给最终用户,对于初学者而言十分方便。

  但是,这种商业模式,直接导致用户可定制性差,不利于自动化,集成第三方工具的能力弱。例如,无法定制一些宏来处理一些重复操作;体会不到自动化makefile一步到位快感;无法远程登录到服务器上进行开发;无法使用某种”粘合剂”来把第三方工具(例如,文本工具,字符串工具)有效地调用起来。可以说,良好的商业支持和傻瓜式开发,是它们主要的优点。

  在Linux下,C++开发工具被切割成一个个独立的小工具。各自处理不同的问题。例如,编辑器(emacs, vim)用来进行编辑程序的,调试器(gdb)用来调试程序,编译器(GCC)用来编译和链接程序的,性能分析工具(gcov, gprof)用来优化程序的,文档生成器(doxygen)用来生成文档的。

  同时,还有一些系统工具和系统知识,我们是很有必要了解的:程序自动化机制 makefile,系统粘合剂shell,系统查找工具grep, locate, find。其它的工具(例如ctags, OCI公司的MPC等等),一旦熟练掌握,它们将成为你手中的利器。

  本文主要是一些针对Linux下开发工具使用的经验之谈。由于,工具品种繁多,我们没有能力也没有必要一一介绍。对于Linux下IDE工具,例如 eclipse, anjuta等,它们虽然也很实用,但是使用起来比较简单,而且目前还算不上主流。所以,它们将不被着重介绍。

  同时,本文也不打算写成各个工具的操作手册,只着眼于介绍各个工具的想要解决的问题、运行机理和主要特性。

  要进行开发,第一件事情就是选择一个合适的编辑器。编辑器选择有几个要素:

1)减少不必要的编辑动作,减少编辑的时间。一切能够无二义性描述出来的编辑任务,都可以而且应该能被自动化。

  例如,每一个C++开发都会有一个main函数;我们在定义.h文件时,都希望加入一些预处理指令#define来帮我们解决重复引用同一个头文件而带来的麻烦。鼠标操作总是比键盘操作要慢的。这方面EMACS做得可算是到了极致。所以, EMACS用户经常会吹嘘:他们编辑的速度等同于他们思考的速度。

  2)可扩展性高。程序员预期的编辑器应该能提供一些编程的帮助,例如,语法高亮,自动补齐,自动排版,语法检查等等。

  留心观察一下gedit, vim, emacs, ultraEdit,就会发现它们提供的远不是windows 记事本,写字板提供的那么简陋的功能。对于一种新的语言,新的语法,它们应该能很方便地提供支持,而不停留在一种或几种固定的语言上。

  3)用户可定制性高。如果想长期从事研发, 特别是Linux/unix下研发的话,那么你很有必要学好一个功能足够的编辑器。

  有这么一句话:Linux下程序员分为三种,使用emacs的,使用vi的,还有其它。EMACS是Stallman用lisp语言写的一个GPL的编辑器。我们这里所说的emacs指的是GNU emacs,而非Xemacs。

  由于它的开放性,我们可以把它打造成一个功能强大的IDE。我们在安装好CGYwin之后,也可以在Windows系统下使用 EMACS。CGYwin和MINGW是第三方写的一个在Windows系统上模拟POSIX系统的工具。

  EMACS与其说的是一个编辑器,倒不如说它是一个操作系统。我们可以用它来写编程,写wiki,收发邮件等等。C++开发主要是通过两种方式来进行扩展:el脚本(elisp是lisp的一种方言)和第三方扩展包。EMACS的入门成本很高。

  由于是纯键盘操作,所以需要记忆大量的快捷键;功能强大是通过用户添加一些扩展包,lisp脚本来实现的。如何正确配置和修改是很需要耐心和技巧的。

时间: 2024-10-21 13:24:33

Linux教程:如何在Linux下进行C++开发?的相关文章

Linux有问必答——如何在Linux命令行中剪裁图像

Linux有问必答--如何在Linux命令行中剪裁图像 问题:我想要去除图像文件中的白色空白,有没有什么便捷的方法能在Linux命令行中对图像文件进行剪裁? 当涉及到在Linux中转换或编辑图像文件时,ImageMagick毫无疑问是最为熟知的一体化软件之一.它包含了一整套命令行工具,用以显示.转换,或复制超过200中类型的光栅或矢量图像文件,所有这一切都在命令行下完成.ImageMagick可以用于多样化的图像编辑工作,如转换文件格式,添加特殊效果,添加文本,以及改变图像(调整大小.旋转.翻转

Linux有问必答-如何在Linux中安装Go语言

Linux有问必答-如何在Linux中安装Go语言 Go (也叫 "golang")是一款由Google最初开发的编程语言.它自诞生就有几个设计原则:简单性.安全性和速度.Go语言发行版拥有各种调试.测试.调优和代码审查工具.如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装. 在Ubuntu.Debian 或者 Linux Mint上安装Go语言 下面是在基于Debian的发行版上使用apt-get来安装Go语言和它的开发工具. $ sudo

Linux有问必答 - 如何在linux上安装WPS

Linux有问必答 - 如何在linux上安装WPS 问题: 我听说一个好东西Kingsoft Office(译注:就是WPS),所以我想在我的Linux上试试.我怎样才能安装Kingsoft Office呢? Kingsoft Office 是一套办公套件,支持多个平台,包括Windows, Linux, iOS 和 Android.它包含三个组件:Writer(WPS文字)用来文字处理,Presentation(WPS演示)支持幻灯片,Spereadsheets(WPS表格)是电子表格.其使

linux shell etl-如何在Linux环境下让SHELL调用kettle的ETL的等待时间减少

问题描述 如何在Linux环境下让SHELL调用kettle的ETL的等待时间减少 各位大神,求问. 在Linux环境下用SHELL调用kettle的ETL. 每次调用ETL都得有一个等待时间,等待kettle启动(7S), 这个怎么解决? 能不能使KETTLE在Linux环境下先启动好了?(这样在执行shell的过程中就少掉了等待启动kettle的时间) 或者是有其他方法. 求解,急!!!!!!!!

大家好!有谁知道如何在eclipse下搭建C++开发平台吗?

问题描述 网上的资料很多,但是版本太多了有Eclipse3.01+MinGW3.有什么eclipse+cdt+guc的,我都弄晕了!!不知道选哪个才好!!知道的朋友能告诉一下吗,在下感激不尽!! 解决方案 解决方案二:eclipse装CDT插件,或者直接下个集成版的:3.01那是很老的版本了,目前是3.5了:这里下载EclipseIDEforC/C++Developers(79MB)下载完了,解压,运行,看帮助文档,里面会告诉你要装,怎么装MinGW等工具.解决方案三:cdt就是eclipse支

如何在Linux下安装PyCharm

简介 Linux 经常被看成是一个远离外部世界,只有极客才会使用的操作系统,虽然这是一个误解,但事实上,如果你想开发软件,那么 Linux 系统能够为你提供一个很好的开发环境. 刚开始学习编程的新手们经常会问这样一个问题:应该使用哪种语言?当涉及到 Linux 系统的时候,通常的选择是 C.C++.Python.Java.PHP.Perl 和 Ruby On Rails. Linux 系统的许多核心程序都是用 C 语言写的,但是如果离开 Linux 系统的世界, C 语言就不如其它语言比如 Ja

如何在Linux命令行下收听网络电台

如何在Linux命令行下收听网络电台 对于花大量时间在Linux屏幕前的系统管理员和Linux爱好者来说,网络/本地电台上的音乐可以极大提高生产力,你们知道吗?不管你们相信与否,,在工作环境中有适当的声音,如音乐或者闲聊声包围,都可以提高我们的创造力.如果你喜欢在音乐环境中工作,这个教程也许会对你有用.我将会向你展示如何在命令行中收听潘多拉(Pandora)在线电台(LCTT译注:Pandora Internet Radio是一个仅为美国.澳大利亚和新西兰提供自动音乐推荐的系统.详细介绍Pran

Linux系统CENTOS 6.8下安装锐速的教程

锐速可能还有很多朋友没有听说过,不仅可以加速Web访问,官方的说明为锐速(ServerSpeeder)加速软件是一种基于ZETATCP加速引擎的软件,可以起到显著加速效果的 TCP 加速技术,增强VPS/服务器连接的稳定性,且有效的提高服务器的带宽利用率.不过有很多朋友是基于Linux 系统CENTOS 6.8,有时候出现了不能安装锐速的情况,由于锐速官方尚不支持centos6.8,所以centos6.8想要安装锐速就要降级内核. 另外,据说这玩意居然还可以提高VPN的访问速度,像部落之前介绍过

如何在Linux下监控系统温度

大多数情况下,你无需担心你的电脑温度.除非制造上的缺陷,否则硬件设计一般不会使其超过最高工作温度.但即使没有任何硬件故障,各种各样的软件问题也会导致硬件过热,例如,显卡驱动的严重bug,风扇控制程序的错误配置,CPU调频守护进程的故障,等等. 严重的过热可能会对硬件造成永久性的伤害,所以应当时刻小心系统上的任何过热问题.因此,如果有合适的温度监控系统,能在系统温度突然急速上升时,第一时间向用户发出警报,岂不美哉? 本教程,我将描述如何在Linux下监控系统温度. 在Linux下有许多用户级工具可