怎么使用emacs编写c语言程序,并编译运行之
1个回答
展开全部
学习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”存盘,本人测试的代码如下:
[cpp] view plain copy
#include
int main( ) {
std::cout << "Hello, Emacs!!!"
<< std::endl;
}
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*”,这个缓冲区我们修改过了;
在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”存盘,本人测试的代码如下:
[cpp] view plain copy
#include
int main( ) {
std::cout << "Hello, Emacs!!!"
<< std::endl;
}
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*”,这个缓冲区我们修改过了;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询