如何成功编译VIM支持lua

Vim、Emacs配置和使用
回复
zfovly216
帖子: 27
注册时间: 2013-07-01 13:40
系统: windows 7

如何成功编译VIM支持lua

#1

帖子 zfovly216 » 2016-08-07 21:08

安装参考的帖子:http://www.jianshu.com/p/3e0c242310d3

已安装的依赖如下:

代码: 全选

sudo apt-get install \
    python-dev \
    python3-dev \
    ruby-dev \
    liblua5.2-dev \
    liblua5.3-dev \
    libperl-dev \
    libtcl8.6 \
    libgnomeui-dev \
    libx11-dev \
    libxt-dev \
    libxpm-dev
使用的命令如下:

代码: 全选

 $ ./configure \                                                                                                                                                                                         [20:58:26]
    --prefix=/usr/local/ \
    --with-features=huge \
    --enable-multibyte \
    --enable-cscope=yes \
    --enable-perlinterp=yes \
    --enable-rubyinterp=yes \
    --with-ruby-command=/usr/bin/ruby \
    --enable-luainterp=yes \
    --enable-pythoninterp=yes \
    --enable-python3interp=yes \
    --enable-tclinterp=yes \
    --enable-gui=auto \
    --enable-gnome-check \
    --enable-sniff \
    --enable-xim \
    --enable-fontset \
    --with-x \
    --with-compiledby=$USER \
    --enable-fail-if-missing
提示报错如下:

代码: 全选

checking --with-lua-prefix argument... no
checking LUA_PREFIX environment var... not set, default to /usr
checking --with-luajit... no
checking for lua... no
checking if lua.h can be found in /usr/include... no
checking if lua.h can be found in /usr/include/lua... no
configure: error: could not configure lua
实际lua.h的位置在/usr/include/lua5.3/或/usr/include/lua5.2/,就算把/usr/include/lua5.3复制为/usr/include/lua,成功找到lua.h,还是会继续报错:

代码: 全选

checking if link with -L/usr/lib -llua is sane... no
于是不知道怎么办好了……
上次由 zfovly216 在 2016-08-09 13:56,总共编辑 1 次。
头像
astolia
论坛版主
帖子: 6396
注册时间: 2008-09-18 13:11

Re: 如何成功编译VIM支持lua

#2

帖子 astolia » 2016-08-07 21:48

直接安裝vim-nox/vim-gtk/vim-gtk3就有lua支持了

代码: 全选

$ vim.nox --version | grep lua
+dialog_con      +lua             +rightleft       +windows
Linking: gcc   -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/x86_64-linux-gnu/perl/5.22/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -l
头像
lilydjwg
论坛版主
帖子: 4248
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何成功编译VIM支持lua

#3

帖子 lilydjwg » 2016-08-07 22:05

如果你用最新的 Vim 源码还是报错,可以去提交一下 bug 报告。

当然,先看一下 config.log 确认一下确实是 Vim 的构建系统没有找到头/库文件,而不是别的什么问题。
zfovly216
帖子: 27
注册时间: 2013-07-01 13:40
系统: windows 7

Re: 如何成功编译VIM支持lua

#4

帖子 zfovly216 » 2016-08-09 10:07

astolia 写了:直接安裝vim-nox/vim-gtk/vim-gtk3就有lua支持了

代码: 全选

$ vim.nox --version | grep lua
+dialog_con      +lua             +rightleft       +windows
Linking: gcc   -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/x86_64-linux-gnu/perl/5.22/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -l
很少用带GUI的VIM,而且自己编译想要什么支持都可以实现,某种程度更加方便点
zfovly216
帖子: 27
注册时间: 2013-07-01 13:40
系统: windows 7

Re: 如何成功编译VIM支持lua

#5

帖子 zfovly216 » 2016-08-09 10:17

lilydjwg 写了:如果你用最新的 Vim 源码还是报错,可以去提交一下 bug 报告。

当然,先看一下 config.log 确认一下确实是 Vim 的构建系统没有找到头/库文件,而不是别的什么问题。
源码足够新了

代码: 全选

commit 7547a78446c1a3c04b36c0533f0f046188bd378b
Author: Bram Moolenaar <Bram@vim.org>
Date:   Mon Aug 8 23:26:51 2016 +0200

    patch 7.4.2187
    Problem:    glob2regpat test fails on Windows.
    Solution:   Remove the checks that use backslashes.
的确是找不到头文件与库文件,上面也贴了

代码: 全选

checking --enable-luainterp argument... yes
checking --with-lua-prefix argument... no
checking LUA_PREFIX environment var... not set, default to /usr
checking --with-luajit... no
checking for lua... no
checking if lua.h can be found in /usr/include... no
checking if lua.h can be found in /usr/include/lua... no
configure: error: could not configure lua
我发个issues问问
zfovly216
帖子: 27
注册时间: 2013-07-01 13:40
系统: windows 7

Re: 如何成功编译VIM支持lua

#6

帖子 zfovly216 » 2016-08-09 15:51

lilydjwg 写了:如果你用最新的 Vim 源码还是报错,可以去提交一下 bug 报告。

当然,先看一下 config.log 确认一下确实是 Vim 的构建系统没有找到头/库文件,而不是别的什么问题。
开发者也没有什么好办法,最后各种软链接解决了。

再问一下编译好带有python支持了(+python/dyn,+python3/dyn),为什么还会提示:Error: Required vim compiled with +python
头像
lilydjwg
论坛版主
帖子: 4248
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何成功编译VIM支持lua

#7

帖子 lilydjwg » 2016-08-09 17:28

zfovly216 写了:
lilydjwg 写了:如果你用最新的 Vim 源码还是报错,可以去提交一下 bug 报告。

当然,先看一下 config.log 确认一下确实是 Vim 的构建系统没有找到头/库文件,而不是别的什么问题。
开发者也没有什么好办法,最后各种软链接解决了。

再问一下编译好带有python支持了(+python/dyn,+python3/dyn),为什么还会提示:Error: Required vim compiled with +python
加载失败了?没有报错说加载失败什么的么?
zfovly216
帖子: 27
注册时间: 2013-07-01 13:40
系统: windows 7

Re: 如何成功编译VIM支持lua

#8

帖子 zfovly216 » 2016-08-09 17:46

lilydjwg 写了: 加载失败了?没有报错说加载失败什么的么?
查了一下是说如果vim要同时支持python和python3,那么只会在同一时间动态加载其中一个,不知道是根据什么来决定的,反正每次加载的都是python3,后来在编译的时候把python3的支持去掉了就好了
zfovly216
帖子: 27
注册时间: 2013-07-01 13:40
系统: windows 7

Re: 如何成功编译VIM支持lua

#9

帖子 zfovly216 » 2016-08-09 17:47

lilydjwg 写了:如果你用最新的 Vim 源码还是报错,可以去提交一下 bug 报告。

当然,先看一下 config.log 确认一下确实是 Vim 的构建系统没有找到头/库文件,而不是别的什么问题。
实际上正确的方法是安装lua5.2,而不仅仅是liblua5.2-dev,configure脚本会使用lua命令来检查lua的版本以及头文件和库文件的路径,会自动修正问题。
头像
lilydjwg
论坛版主
帖子: 4248
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何成功编译VIM支持lua

#10

帖子 lilydjwg » 2016-08-09 21:35

zfovly216 写了:
lilydjwg 写了: 加载失败了?没有报错说加载失败什么的么?
查了一下是说如果vim要同时支持python和python3,那么只会在同一时间动态加载其中一个,不知道是根据什么来决定的,反正每次加载的都是python3,后来在编译的时候把python3的支持去掉了就好了
是根据操作系统来决定的。Arch Linux 上的 Vim 可以同时支持 Python 2 和 3。Ubuntu 上的只能支持先被加载的那个,因为它的 Python 编译时没有加 --enable-shared。
头像
lilydjwg
论坛版主
帖子: 4248
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何成功编译VIM支持lua

#11

帖子 lilydjwg » 2016-08-09 21:36

zfovly216 写了:
lilydjwg 写了:如果你用最新的 Vim 源码还是报错,可以去提交一下 bug 报告。

当然,先看一下 config.log 确认一下确实是 Vim 的构建系统没有找到头/库文件,而不是别的什么问题。
实际上正确的方法是安装lua5.2,而不仅仅是liblua5.2-dev,configure脚本会使用lua命令来检查lua的版本以及头文件和库文件的路径,会自动修正问题。
原来是这样……Arch Linux 用户从来没遇到过这种问题。
zfovly216
帖子: 27
注册时间: 2013-07-01 13:40
系统: windows 7

Re: 如何成功编译VIM支持lua

#12

帖子 zfovly216 » 2016-08-10 15:52

lilydjwg 写了:
zfovly216 写了:
lilydjwg 写了: 加载失败了?没有报错说加载失败什么的么?
查了一下是说如果vim要同时支持python和python3,那么只会在同一时间动态加载其中一个,不知道是根据什么来决定的,反正每次加载的都是python3,后来在编译的时候把python3的支持去掉了就好了
是根据操作系统来决定的。Arch Linux 上的 Vim 可以同时支持 Python 2 和 3。Ubuntu 上的只能支持先被加载的那个,因为它的 Python 编译时没有加 --enable-shared。
是这样吗?我看vim的manual不是这么写得,貌似跟python与python3的符号表怎么的有关,导致同一时间只能加载一个。Arch上echo has('python')和echo has('python3')都是1么?
头像
lilydjwg
论坛版主
帖子: 4248
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何成功编译VIM支持lua

#13

帖子 lilydjwg » 2016-08-10 20:38

我记得是这样的。

Arch 官方编译的我不太清楚。我的 vim-lily / gvim-lily 是两个都能同时加载的。曾经我也在 Ubuntu 上自行编译 Python 和 Vim 来同时支持过两者。
zfovly216
帖子: 27
注册时间: 2013-07-01 13:40
系统: windows 7

Re: 如何成功编译VIM支持lua

#14

帖子 zfovly216 » 2016-08-11 8:54

lilydjwg 写了:我记得是这样的。

Arch 官方编译的我不太清楚。我的 vim-lily / gvim-lily 是两个都能同时加载的。曾经我也在 Ubuntu 上自行编译 Python 和 Vim 来同时支持过两者。
厉害[emoji1303]


从我的 iPhone 发送,使用 Tapatalk
回复