`
tansitongba
  • 浏览: 482285 次
文章分类
社区版块
存档分类
最新评论

如何在GNU Emacs环境下编译并运行C/C++程序?

 
阅读更多

版权声明:对于本博客所有原创文章,允许个人、教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者、出处及本声明。

博客地址http://blog.csdn.net/shuxiao9058

原始作者:季亚


学习C/C++的朋友有没有想过完完全全的在Linux环境下开发软件!?我想过,可能是因为个人对Windows平台有些偏见,或者说个人不是非常喜欢在Windows下写程序的感觉,总觉得有那么一层膜隔阂着我们,不像Linux,可以做强大的服务器,在终端下只需要使用简简单单的命令便能完成相当复杂的事情,是不是感觉很高深!?还有很多很多开源项目,Emacs也算一个吧!!!

呵呵,谈到在Linux下编程,我们不得不提这两款编辑器:vi/vim和Emacs(确切的说Emacs的功能已经远远超出了编辑器,使用它我们可能收发邮件,玩游戏,排版等等)。Emacs的强大不得不让我们对设计出该编辑器的大师们发出崇高的敬意和赞叹,Emacs强大之处不仅仅局限于编辑功能,还提供的许多自定义选项,还有我们可以不需要动鼠标便可完成日常工作(对于大多数人来说这可能不太现实),下面我只是简要的介绍如何使用Emacs编译/运行C/C++程序,文中相关命令可以参考本人其他博文。

Emacs有很多版本,如Gnu Emacs、XEmac等等。而且Emacs在各个平台下均能表现的非常出色,前提是你要熟悉它。

首先,再次说明本人所使用的操作系统是rhel 6.2,已经安装GNU Emacs 23.1.1和gcc version 4.4.6,注意Emacs只是一个编辑器,在我们程序员看来(其实我们也可以将其看作IDE,如果使用的比较熟练的话),最起码对于我这种菜鸟来说,还不能十分熟练的玩转Emacs,它实在是太强大了,以至于有很多知识需要去记忆(不仅仅是快捷键)。

OK,不啰嗦了,下面进入正题:

1.启动Emacs,在终端输入“emacs&”命令后回车(你也可以输入“emacs”命令,不过当你在使用Emacs的时候,当前终端就不为你工作了;并且如果你熟练使用Emacs的话也可以输入“emacs -nw”命令以启动非X视窗下的Emacs),至于后面为什么要加一个“&”符,这是Linux里面的基本知识,加上“&”符后会在当前终端下产生一个子进程以运行Emacs而不会对当前终端的工作造成任何影响,这里我们键入“emacs –nw”命令,启动界面如图1所示;

图1 键入“emacs –nw”命令后,Emacs的启动界面

2.打开/新建文件,进入Emacs界面后,键“C-x C-f”以打开/创建一个新的文件(如图2所示),建议以C/C++语言里所规定的扩展名来指定创建的文件的扩展名,虽然在Linux下面我们不是十分强调文件的扩展名,但是如果你选择正当的扩展名的话,将有助于高亮代码,并且Emacs会根据我们创建的文件的扩展名以进行不同语言(要知道,Emacs不只是为了C/C++程序员设计的)编码风格的缩进;

图2 键“C-x C-f”,输入文件名以打开/创建一个新的文件

3.编辑文件,键“C-x C-s”存盘,本人测试的代码如下:


4.编译文件,这里我介绍两种方法。

法1:常规方法,参考Learning Gnu Emacs,我们可以这样做:键“M-x”,此时在minibuffer中会显示“M-x”字样,输入“compile”命令后默认会显示“Compile command: make -k”字样,此时把“make -k”删除后,运行相关编译命令(如现在我们应该键入“g++ test.cpp –o test”),如图3所示;

图3 minibuffer下键入“g++ test.cpp –o test”命令以编译源文件

法2:我想大多C/C++程序员会选择第二种编译方法,同样的,键“M-x”,输入“eshell”或“shell”命令,进入“eshell”或“shell”缓冲区,这里我们键入的命令是“eshell”,然后同样的键入“g++ test.cpp –o test”命令以编译源文件,如图4所示;

图4 eshell下键入“g++test.cpp –o test”命令以编译源文件

5.运行编译后的可执行文件,同样的按照第4步中的打开eshell缓冲区,输入相关命令即可执行编译后文件,这里我们应该输入“./test”命令,如图5所示。

图5 输入“./test”命令以执行编译后文件

注意:当我们进入其他缓冲区后,再想切换到编辑过的缓冲区可以键入“C-b buffername”以切换到目的缓冲区。注意编辑(修改)后的缓冲区的名字格式为“*buffername*”,如上面我们切换到“test.cpp”缓冲区应该buffername应为“test.cpp”,在我们打开“eshell”缓冲区之前我们已将其保存过了,切换到“test.cpp”后再想切换到之前打开的“eshell”缓冲区的buffername应为“*eshell*”,这个缓冲区我们修改过了;

分享到:
评论

相关推荐

    mingw C/C++程序环境

    MinGW 提供了一套简单方便的...MinGW是完全免费的自由软件,它在Windows平台上模拟了Linux下GCC的开发环境,为C++的跨平台开发提供了良好基础支持,为了在Windows下工作的程序员熟悉Linux下的C++工程组织提供了条件。

    用VIM编写C/C++程序

    用VIM编写C/C++程序 Vi是Unix下最常用的文本编辑器。VIM(Vi IMproved)则是它的增强版。有人常常拿VIM和emacs比较,VIM尽管不象emacs那样有那么多的功能,但是比emacs更方便、好用。用过emacs的人肯定会为emacs的...

    在Linux下编译C或C++程序的教程

    从开始学习C/C++我们都在是windows下,那么如何(怎样)在linux中编译C/C++代码?在linux终端下(命令行中)编译译C/C++代码? 在任何linux分支下编译C/C++代码,如 Ubuntu ,Red Hat, Fedora ,Debian 以及其他linux分支...

    嵌入式程序设计基础(GCC编译过程,C/C++交叉编译器arm-elf-gcc,工程管理器make)

    GNU集成编译环境GCC(GNU Compiler Collection)是一种面向嵌入式领域、支持多种编程语言、支持多种CPU的交叉编译工具。 本章主要介绍: GCC编译过程 C/C++交叉编译器arm-elf-gcc 交叉汇编器 arm-elf-as 交叉连接器...

    GNU Emacs 23.3 (Part 2/3)

    GNU Emacs 23.3 (Part 2/3) GNU Emacs is an extensible, customizable text editor—and more. At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to ...

    Writing GNU Emacs Extensions

    emacs 教程 Writing GNU Emacs Extensions pdf

    GNU Emacs for windows

    GNU Emacs for windows

    GNU Emacs Pocket Reference

    GNU Emacs Pocket Reference

    GNU Emacs Lisp编程入门(文本org)

    Programming in Emacs Lisp: An ...本书是一本GNU Emacs Lisp的编程入门,全书循序渐进地介绍了GNU Emacs Lisp编程的各种基础知识和方面,文笔流畅、讲解透彻,对GNU Emacs用户提高对它的理解和运用帮助极大。

    gnu emacs-24.3

    支持C/C++,Perl,Python,Lisp等等 玩游戏 计算器 记日记 煮咖啡 管理日程,Task,ToDo,约会等 个人信息管理 目录管理 文件比较 阅读info和man文档 浏览网站 为各种程序(TeX等)提供统一的操作界面 …… 此外...

    动态语法检查GNU Emacs-C/C++开发

    http://www.flycheck.org GNU Emacs的现代即时语法检查扩展。...我们欢迎您做出各种贡献,无论您是编写补丁程序,打开拉取请求,编写文档,在Flycheck问题上帮助他人,还是只是将您的经验告诉其他人

    GNU_Emacs GNU_Emacs

    GNU_Emacs orelly出版 学习emacs的经典著作

    eclipse 开发c/c++

    接下来,在 C/C++ Projects 视图中,选择 C/C++ project,然后单击鼠标右键并选择 Rebuild Project。所有来自 make、编译器和链接程序的编译消息都被重定向到控制台窗口: 图 7. 带编译器输出的控制台窗口 编译...

    Learn_GNU_Emacs.pdf.tar.gz

    自诞生以来,Emacs演化出了众多分支,其中使用最广泛的两种是:1984年由Richard Stallman发起并由他维护至今的GNU Emacs,以及1991年发起的XEmacs。XEmacs是GNU Emacs的分支,至今仍保持着相当的兼容性。 Emacs使用...

    GnuEmacs

    GnuEmacs tutorial, 3rd edition.

    GNU Emacs Manual mobi

    这是GNU Emacs Manual的mobi版,Kindle用户大爱,不过Manual就是Manual不是什么实例教程。

    GNU Emacs Lisp编程入门

    GNU Emacs Lisp编程入门(清晰版) 英文名:An Introduction to Programming in Emacs Lisp

    google-perftools 源码 (一款针对 C/C++ 程序的性能分析工具)

    google-perftools 是一款针对 C/C++ 程序的性能分析工具,它是一个遵守 BSD 协议的开源项目。使用该工具可以对 CPU 时间片、内存等系统资源的分配和使用进行分析,本文将重点介绍如何进行 CPU 时间片的剖析。 google...

    C/C++-数据结构-电话号码查找系统-大学生课设-课程设计

    本程序需要在Linux下Make编译运行 编译语言:C++ 源程序使用UTF-8编码 需要程序:GNU Make、GNU G++ 编译运行方式: 1. 打开Linux终端 2. 命令行输入make命令,使用Make程序构建程序 3. 命令行输入./Main ,...

    DevCpp-C/C++语言编译开发工具

    它是一个免费开源的软件,提供了一套工具和功能,方便开发者编写、调试和编译C和C++程序。Dev-C++具有简单易用的界面和直观的功能,适合初学者和有经验的开发者使用。 Dev-C++适用于学生、教育机构、自学者和专业...

Global site tag (gtag.js) - Google Analytics