在 windows 下面用 msvc 编译 emacs-unicode-2


-----------------------
E:/Downloads/emacs-21.3/emacs-21.3
config.bat
nmake
nmake install
ok,
要有sfu|msys|cygwin的命令支持

------------------------------------------

cpper编程论坛:
有谁在 windows 下面用 msvc 编译过 emacs-unicode-2 的么?

--------------------------------------------------------------------------------

最近两天心血来潮,想在 windows 下面用上 emacs-unicode-2 ,就 cvs 了源码下来。我对 mingw 和 cygwin 的编译器和 make 不是很信任,拿了 msvc 来编译,结果吃了一些苦头。嗯嗯,这里总结一下:

首先,vs.net 2005 是不能用的。在这个版本里面,微软不知道哪根神经出了点贵恙,居然把 CRT 的单线程版本 libc.lib 给去了,nmake 的时候会报 libc.lib 无法找到。我当时怎么也没往这个方向想,还以为环境什么地方设错了,找了半天才发现真的没这东西,只好杀进 makfile 把 libc.lib 改成 libcmt.lib 。随后又是一个非常诡异的编译错误,号称 windows 自己的 time.h 里面有个函数返回了数组 …… 打开一看,全是宏定义,实在懒得看了,卸了 2005 重装 2003 了事。

其次,GnuWin32 那帮东西也不咋样。为了在编译的时候加上图形支持,需要加上一堆 Gnu 的图形库,libjpeg/gif/png 之类。这一堆文件下载起来够烦的,sourceforge 那是有名的慢。搞下来之后编译还不顺当,configure.bat 报告都正确的情况,编译到 jpeg 支持的时候过不去。看错误信息定位进去,居然是使用了 UINT16 和 UINT8 却没有定义 …… 有一点点 faint 。随手补上两个 typedef 就能过去了。

最后,emacs 自己的东西也表现不佳。先是 configure.bat 在检测图形库支持的时候一会这个格式没有一会那个格式没有,却不报准确原因,只说头文件找不到 —— 头文件明明在那里的。我自己翻了 configure.bat 的源文件,它是写一个两行的 junk.c 文件尝试编译来看的,自己重复一遍这个操作,发现是它在尝试编译的时候找不到 emacs 包里自己的一些头文件 …… 不想改了,直接把对应的目录加到 include 路径里,果然就没事了。接着又是 emacs 自己编译自己的 elisp 文件过不去,每次跑到 leim/lao.el 就退出。我对 elisp 没啥心得,进去以后也看不出错在哪里。google 了一下,发现 leim 也就是一些国际化的输入法包(这 lao.el 是哪国的输入法?老挝?),干脆不要了,在 makefile 里面把对应的这一项禁掉了事。

唉唉,总而言之一句话,真是麻烦啊。从下午开始弄,折腾到现在才搞定。好在效果还不错 ,不然 ……

你可能感兴趣的:(windows,输入法,include,emacs,makefile,图形)