11
26
2010
8

在Win编译带Lua支持的GVIM

本文来自依云's Blog,转载请注明。

虽然已经在Linux下待了这么长时间,可是,还是有很多时候,我不得不面对难用的Windows。而在Linux下一直自己编译Vim的我,今天在得知刘春棍的行动的支持下,终于鼓足了勇气,下载安装MinGW,编译了GVIM。

在Windows下编译GVIM和Linux下不同,不能用./configure来配置,要到src目录下,修改这下面的Make_ming.mak文件,改好后直接make -f Make_ming.mak编译。

Win下编译东西花的时间长就不说了。我编译了好几遍。Python支持没问题,设定好路径就OK,Ruby我是为编译GVIM专门装的,除了静态编译时会报错外,还有个很严重的问题,导致我最后放弃了+ruby。这个后面再说。Lua我下的是最新的5.2版,一个lua5_2_work2_Win32_bin.zip包含了exe和dll文件,另一个lua5_2_work2_Win32_mingw4_lib.zip包含了头文件和一个 .a 文件。我最开始以为和ruby一样只能动态载入,于是设置了DYNAMIC_LUA=yes,结果编译是成功了,但载入失败:

luaL_typerror无法加载

我用cg搜索了下,luaL_typerror被 #define 成了luaL_typeerror,这看来是5.2改的。我手动在if_lua.c里把这个给改了,结果发现,还有其它函数也是类似的情况,比如lua_call等。于是我尝试静态编进去试试,竟然成功了!

然而,喜悦总是短暂的。我以前只知道ruby支持有问题,没想到这次问题更严重了,:edit命令都用不了:

当然,一开始我还不能肯定是ruby支持的问题,但当编译了不带ruby支持的版本后,这个奇异的问题就没有了。

Vim7.3对其他语言的支持的问题真是多啊:Python3的中文支持有问题,ruby的支持也有问题,要支持Lua5.2还得自己改源代码。。。

不管怎么说,Lua静态编译进去了我还是很高兴的。虽然在没装Lua的机器上没那些Lua的库的,但至少在Vimscript外又多了一种可用的语言了。

最后,想下载我编译的 Windows 32 版 vim 的请到这里来。

Category: Vim | Tags: vim windows Lua | Read Count: 18637
荒野无灯 说:
Nov 28, 2010 01:26:24 AM

出现下面那个图的原因一般是系统没有安装vc 运行库。缺少程序运行必需的那个啥vcxxx.dll 文件 。

Avatar_small
依云 说:
Nov 28, 2010 04:23:55 AM

我刚刚确认了,Vim在调用Lusty-explorer时是段错误。在Procmon里没发现任何有用的信息,在gdb里只看到SEGSEGV。

Avatar_small
亚弥 说:
Jan 10, 2011 05:26:48 PM

对了跟你说一下……Lua5.2-alpha版本已经去掉了luaL_typeerror函数了……我死都没找到这个函数= =

有一个luaG_typeerror,不过从名字就可以看出来仅限内部使用了= =

Avatar_small
依云 说:
Jan 11, 2011 04:23:03 AM

我看了下,有个 typeerror 函数,希望 vim 对 lua5.2 的支持不要像 python3 的那样,姗姗来迟还 bug 多多。
不过,我 win 上的 lua5.2 是怎么来的呢。。。

Avatar_small
亚弥 说:
Jan 11, 2011 04:32:11 AM

啊……大姐,难道你没看见typeerror函数的定义前有个static么…………

Avatar_small
依云 说:
Jan 11, 2011 04:45:00 AM

我才看到。。。。

Avatar_small
亚弥 说:
Jan 11, 2011 05:23:49 AM

强烈建议依云姐姐能向Vim-dev提交Lua5.2-alpha的if_lua.c补丁……

Avatar_small
依云 说:
Jan 11, 2011 05:45:48 AM

我要是有这功夫就去补 if_python3.c 了


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

| Theme: Aeros 2.0 by TheBuckmaker.com