`
zxggmail
  • 浏览: 29248 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

编译VIM

    博客分类:
  • vim
 
阅读更多
用VIM官方网站下的安装包安装后,使用ruby脚本总是崩溃,原因不明。(比如:使用命令
:ruby puts $curbuf.line
)

今天决定下载源码(vim73_46src.zip),重新编译下,使之支持Ruby1.9.3, Lua5.1, Python2.7.

1.对Ruby的支持,我是按编译时的提示,改动了make文件,将文件拷贝到VIM源码所在目录;

2.对Lua的支持,没费多少周折,只是Lua安装路径中不能含有空格,而且生成的“pathdef.c”文件第6行会在Lua路径两边加上双引号,去掉即可;

3.对Python的支持,是最费劲的,最后是下载了最新的if_python.c替换原有同名文件才解决。

显示的错误:
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyString_FromString
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyDict_New
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyObject_Init
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyInt_FromLong
if_python.obj : error LNK2001: 无法解析的外部符号 __imp___PyArg_Parse_SizeT
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyString_FromStringAndS
ize
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyGILState_Release
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyInt_AsLong
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__Py_Initialize
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyList_Size
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyString_AsString
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyErr_NoMemory
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyExc_KeyboardInterrupt

if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PySys_SetObject
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__Py_IsInitialized
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyExc_AttributeError
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyEval_RestoreThread
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyList_SetItem
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyList_GetItem
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyErr_SetNone
if_python.obj : error LNK2001: 无法解析的外部符号 __imp___PyArg_ParseTuple_SizeT

if_python.obj : error LNK2001: 无法解析的外部符号 __imp___Py_NoneStruct
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyEval_SaveThread
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__Py_FindMethod
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyModule_GetDict
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyExc_ValueError
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyErr_Occurred
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyDict_GetItemString
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyObject_Malloc
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyRun_SimpleStringFlags

if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyErr_BadArgument
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyErr_SetString
if_python.obj : error LNK2001: 无法解析的外部符号 __imp___Py_BuildValue_SizeT
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PySys_SetArgv
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyType_Type
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__Py_Finalize
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyErr_Clear
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyString_Size
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyEval_InitThreads
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyList_New
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyGILState_Ensure
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyExc_TypeError
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyDict_SetItemString
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyExc_IndexError
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__Py_InitModule4
if_python.obj : error LNK2001: 无法解析的外部符号 __imp__PyList_Append
gvim.exe : fatal error LNK1120: 46 个无法解析的外部命令

上网查到:http://translate.google.com.hk/translate?hl=zh-CN&sl=en&tl=zh-CN&u=http%3A%2F%2Fvim.1045645.n5.nabble.com%2FLink-Fails-for-183-td1196603.html&anno=2
(不能直接从Google搜出的链接上进入,网页快照也不行,要先点“翻译此页”,再“查看原文”,上面的链接就是这样得到的)

网上VIM之if_python.c最新源码网址:
http://code.google.com/p/vim/source/search?q=if_python&origq=if_python&btnG=Search+Trunk

编译:
msvc2010.bat

nmake -f Make_mvc.mak GUI=yes RUBY=F:\TDDOWNLOAD\ruby-1.9.3-p194 RUBY_VER=191 RUBY_VER_LONG=1.9.1 RUBY_PLATFORM=i386-mswin32_100 LUA=E:\Lua\5.1 PYTHON=E:\Python27 PYTHON_VER=27 DYNAMIC_PYTHON=yes OLE=yes MBYTE=yes IME=yes GIME=yes NIFF=yes CSCOPE=yes POSTSCRIPT=yes autocmd=yes balloon_eval=yes browse=yes builtin_terms=yes byte_offset=yes cindent=yes clientserver=yes clipboard=yes cmdline_compl=yes cmdline_hist=yes cmdline_info=yes comments=yes conceal=yes cryptv=yes cscope=yes cursorbind=yes cursorshape=yes dialog_con_gui=yes diff=yes digraphs=yes emacs_tags=yes eval=yes ex_extra=yes extra_search=yes farsi=yes file_in_path=yes find_in_path=yes float=yes folding=yes  insert_expand=yes jumplist=yes keymap=yes langmap=yes libcall=yes linebreak=yes lispindent=yes listcmds=yes localmap=yes menu=yes mksession=yes modify_fname=yes mouse=yes mouseshape=yes  multi_lang=yes netbeans_intg=yes ole=yes path_extra=yes persistent_undo=yes printer=yes   quickfix=yes reltime=yes rightleft=yes scrollbind=yes signs=yes smartindent=yes startuptime=yes statusline=yes syntax=yes tag_binary=yes tag_old_static=yes textobjects=yes title=yes toolbar=yes user_commands=yes vertsplit=yes virtualedit=yes visual=yes visualextra=yes viminfo=yes vreplace=yes wildignore=yes wildmenu=yes windows=yes writebackup=yes xpm_w32=yes


(本来是只想让VIM正常支持Ruby脚本即可,后来索性把lua和Python加上了。附件中是编译好的VIM和相关的dll,用它们替换官方安装包中的同名文件即可。为防止意外,请先备份原有文件)
分享到:
评论

相关推荐

    vim vs2015编译版

    在Windows上编译vim,通常需要利用Visual Studio提供的编译工具链。这个编译版的vim意味着它是专门为Windows平台优化的,并且可能包含了一些针对VS2015的特定改进或优化。编译过程会涉及配置项目设置、解决依赖项、...

    vim配置文件,适用于vim交叉编译

    Vim(Vi IMproved)是一款强大的文本编辑器,被广泛用于Linux、Unix和类Unix系统中,也适用于Windows平台。它的可配置性是其一大特点,用户可以通过自定义配置文件来适应个人的工作习惯和需求。在您提供的信息中,...

    vim8.2离线包 Centos6下编译

    在CentOS 6上编译Vim 8.2离线包是一项技术性的工作,涉及到许多步骤和依赖关系。首先,我们需要理解为什么要在CentOS 6上编译最新版本的Vim,因为这个发行版的默认软件仓库提供的可能是较旧的版本,可能不包含一些新...

    vim7.4 vs2015完整工程 可调试学习

    编译Vim意味着从源代码构建可执行程序。对于Windows系统,这个过程通常包括获取Vim的源代码、安装必要的编译工具(如MinGW或Microsoft Visual C++编译器)、配置编译选项并执行编译和链接命令。在这个工程中,你...

    vim7.2和vimgdb7.2软件安装源码

    打补丁后,需要重新编译vim: ```bash make VIMPROG=vim sudo make install VIMPROG=vim ``` 安装完成后,你可以通过运行`vim`启动vim,并在其中使用`:gdb`命令来启动gdb调试器。确保gdb已经安装并配置好,因为vim...

    Vim QT版本源代码

    为了编译Vim的QT版本,你需要首先确保你的系统上安装了QT的开发环境,包括QT头文件和库,以及C++编译器(如GCC或Clang)。通常,你可以通过你的包管理器(例如,在Ubuntu上使用`sudo apt-get install qt5-default ...

    Faenza的VIM图标ico格式

    "自己编译vim的时候替换src目录下的图标"是指如果你想在自己编译的VIM版本中使用这个图标,你需要找到VIM源代码中的相应图标文件(通常位于src目录下)并用这个ico文件替换它。编译源代码可以自定义VIM的功能和外观...

    vim7.4安装文件

    这个文件通常包含了用于编译Vim的所有源代码,开发者或高级用户可以通过编译源代码来安装最新版本,以便利用最新的功能和修复的错误。在Linux环境下,通常需要使用`tar`命令来解压这个文件,然后通过`./configure`, ...

    vim编译包安装vim8.2

    此编译包是Vim的8.2版本,专为CentOS x86架构设计,适合那些需要在该环境下进行高效文本编辑的用户。在安装这个编译包之前,我们先来了解一下Vim 8.2的一些主要特点和安装步骤。 **Vim 8.2的主要特性:** 1. **...

    linux环境下,vim82.zip

    接下来,配置并编译Vim源代码: ```bash ./configure --prefix=/usr/local/vim82 make sudo make install ``` 这里,`--prefix=/usr/local/vim82`参数指定了Vim的安装路径,防止与系统默认的Vim版本冲突。 最后,...

    开源项目-vim-vim.zip

    要编译Vim 8.0,你需要遵循以下步骤: 1. 安装依赖:确保你的系统上安装了编译所需的库和工具,如GCC、Make、Perl等。 2. 解压源代码:将下载的vim-vim.zip解压到一个工作目录,进入vim-master目录。 3. 配置:运行`...

    vim8.0编译版本

    vim编译版本

    Vim _ Cscope教程1

    如果Vim未启用Cscope支持,需要重新配置并编译Vim,使用'--enable-cscope'标志。 接着,你需要获取并应用cscope_maps.vim文件。对于Vim 6.x用户,将文件放入$ HOME / .vim / plugin目录;Vim 5.x用户则需将其内容...

    ubuntu-ubuntu升级vim-安装指定版本vim.pdf

    - **Python3支持**:如果计划使用Python脚本增强Vim的功能,则需要确保在编译时包含Python3的解释器支持。 具体的配置命令如下: ```bash # 进入src目录 cd src # 启用Python3支持 CONF_OPT_PYTHON3="--enable-...

    vim 6.4 src

    为了编译Vim 6.4,你需要一个C编译器(如GCC)和相关的开发工具。首先,在终端中导航到解压后的目录,然后运行`./configure`来检测系统环境并生成`Makefile`。接着,执行`make`进行编译,最后`make install`将编译好...

    cscope+vim的一种使用方式

    - 对于 Vim 的安装,确保在编译 Vim 时加入了 `--enable-cscope` 选项。如果没有加入该选项,需要重新编译 Vim。 **2. 配置 Vim** - 下载 `cscope_maps.vim` 文件,并将其放置在 Vim 的插件目录下。对于 Vim 6.x ...

    linux下vim配置

    如果没有,可能需要重新编译Vim并启用Python支持。然后,通过Git克隆ycm项目到本地:`git clone https://github.com/Valloric/YouCompleteMe.git`。进入该目录,按照README中的指示运行安装脚本,通常包括执行`./...

Global site tag (gtag.js) - Google Analytics