在windows下编译GNU Emacs

原创 2004年07月31日 22:59:00

      如果还不知道emacs是什么,可以上google查一下;如果觉得notepad已经足够,或是vs.net 2003已经完美,那么下面的内容不是为您准备的。

      要取得emacs最新源代码,可以ftp://ftp.gnu.org/emacs 下载,但推荐的方法是通过CVS下载最新的源代码。使用如下命令:

export CVS_RSH="ssh" cvs -z3 -d:ext:anoncvs@savannah.gnu.org:/cvsroot/emacs co emacs

现在的源代码已经挺完整,对win32的支持也很好了,至少不需要去linux下编译lisp代码。但是在编译开始之前还是需要一点准备工作,比如需要解决在makefile文件中出现的cp,rm等命令。 makefile中使用cp,rm等linux命令来copy,remove文件/文件夹,我们可以安装微软的SFU工具箱或是cygwin系统来得到这些工具。有了这些工具之后,就可以开始编译了。除此之外,windows下编译makefile使用nmake工具,还需要设置编译的环境,这些应该是很简单的。vc提供了一个配置编译环境批处理文件vsvars32.bat,在common/tools下,如果实在找不到,就search吧。

      现在可以开始了。首先需要编译的是lisp源代码,但是在这之前,我们设置一些选项,生成makefile。使用cmd运行vsvars32.bat,然后进入emacs/nt目录,运行:

configure.bat --no-debug --no-cygwin --prefix f:/gnu/emacs --cflags -I./inc

设置编译为release版本,安装目录为f:/gnu/emacs,附加的include目录为emacs/nt/inc,这里我们会放一些图形支持的头文件。 configure.bat /?显示帮助。

      如果你想编译的emacs能够显示jpeg,tiff,gif,xpm等格式的文件,或是想有一个漂亮的工具栏,那么就需要编译支持图形库的emacs。把需要的图形库头文件放在nt/inc目录下或是其他地方,然后把其路径使用-I包含进来,并把他们的dll文件与编译后的emacs放在一起。所有的图形库可以去http://gnuwin32.sourceforge.net/ 下载,包括:jpeg(jconfig.h, jerror.h, jmorecfg.h, jpeglib.h), png(png.h, pngconfg.h), tiff(tiff.h, tiffconf.h, tiffio.h, tiffvers.h), gif(gif_lib.h), xpm(X11/simx.h, X11/xpm.h), zlib(zlib.h, zconf.h)。

      设置好选项,我们开始源代码文件的编译。真正的编译从这里开始:

nmake bootstrap

若干时间之后,重新显示提示符。如果在提示符上方您看到error字样,那么很不幸,您的编译可能失败了。这时选择放弃,或是使用其他人的编译结果,都是可以理解的。 如果一切顺利,那么恭喜,您过了最容易失败的一关!接下来

nmake

就是这么简单。如果nmake还有事做,您就可以看一下README或是INSTALL,或是做一些别的事情。

      OK,现在我就当您已经编译通过了,接下来是安装。

nmake install

这会安装到您在configure时设置的路径下,这里是f:/gnu/emacs。 现在还没有完。

      默认的,emacs运行需要一个home环境变量;默认的,如果没有找到,则设为C:。但我最讨厌软件信息到处都是。打开注册表HKEY_LOCAL_MACHINE/SOFTWARE/GNU/Emacs,设置HOME为f:/gnu/emacs/home,所有的配置文件就都会放在这个目录下了。

      另外提及一点,默认的makefile文件比较保守,只支持到win98的样子,我们可以修改nmake.defs中的WIN32_WINNT=0x0500,让他可以使用win2k以后的系统的一些新的特性。

如何使用emacs编写c语言程序,并编译运行之

vi和emacs被分别被称为编辑器之神和神之编辑器。vi的入门精通都很难,emacs入门容易,精通难;vi使用起来不停地切换模式,而emacs则不停地ctrl,meta等组合键。因此,高德纳大师说操作...
  • booirror
  • booirror
  • 2012年10月28日 15:10
  • 26205

如何用Emacs编译C++代码

前言之前做算法题都是在CodeBlocks上写的,为了尽快入门心怡许久的Emacs决定以后都用它来写,而不能仅仅将其作为编辑器。使用C-x C-f来打开/创建文件,写好代码,然后用C-x C-s来保存...
  • NoMasp
  • NoMasp
  • 2016年08月06日 21:27
  • 1684

emacs编译

编译Emacs能够以子进程的形式运行非交互式语言的编译器,例如C、Fortran等的编译器,能够把编译错误的记录放进到Emacs的缓冲区中。它也能够贴出错误的信息和显示出编译错误源代码的行。M-x c...
  • cxmanzhao
  • cxmanzhao
  • 2010年06月17日 00:14
  • 2222

Emacs Auctex 设置编译方式

如果不配置,会报fondest ‘fandol’ is unavailable的错误解决方案:使用xetex进行编译即可步骤如下: 1. M-x customize-group [RET] AUC...
  • u013225150
  • u013225150
  • 2016年06月12日 17:45
  • 578

windows下emacs latex编译命令的实现

背景 问题及解决办法 代码举例背景操作系统是windows; emacs使用的是spacemacs; latex使用的是ctex;spacemacs安装latex插件,是通过layer->late...
  • u011729865
  • u011729865
  • 2017年06月04日 17:52
  • 670

emacs和gnu global,搜索利器

在开发项目时,需要写很多代码,各个类之间的引用
  • lihenair
  • lihenair
  • 2014年05月22日 14:46
  • 4058

emacs下编译c

原文地址: http://blog.chinaunix.net/uid-24948934-id-59818.html 内容: 1:在终端启动EMACS. emac...
  • zixie1991
  • zixie1991
  • 2012年12月14日 16:40
  • 255

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

版权声明:对于本博客所有原创文章,允许个人、教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者、出处及本声明。     博客地址:http://blog.csd...
  • shuxiao9058
  • shuxiao9058
  • 2012年06月05日 09:32
  • 15568

如何用Emacs编译C++代码

前言之前做算法题都是在CodeBlocks上写的,为了尽快入门心怡许久的Emacs决定以后都用它来写,而不能仅仅将其作为编辑器。使用C-x C-f来打开/创建文件,写好代码,然后用C-x C-s来保存...
  • NoMasp
  • NoMasp
  • 2016年08月06日 21:27
  • 1684

把Emacs配置成C++和LaTeX环境

把Emacs配置成C++和LaTeX环境 半闲居士,2014.2 写在前面 开始做科研也有不少时间了,拜读过各种论坛上的大哥们的文章,受益匪浅。不禁感叹,这些写技术博客的人可真不容易...
  • u010703122
  • u010703122
  • 2015年10月23日 16:12
  • 1080
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在windows下编译GNU Emacs
举报原因:
原因补充:

(最多只允许输入30个字)