在 CentOS 6.4 上构建 gvim 7.4

Posted

技术标签:

【中文标题】在 CentOS 6.4 上构建 gvim 7.4【英文标题】:Building gvim 7.4 on CentOS 6.4 【发布时间】:2013-08-31 13:21:03 【问题描述】:

我正在尝试在运行 CentOS 6.4 的机器上从源代码构建 gvim7.4。我按照here 中提到的说明在本地构建 vim。可执行的“vim”构建得很好,但“gvim”却无处可寻。我尝试了所有可以在谷歌上找到的方法,但似乎没有帮助。

是否应该使用任何其他方法(除了通常的配置/制作方式)来构建“gvim”?还是有什么不为人知的技巧来为 gvim 构建可执行文件?

我的操作系统:CentOS 6.4。拥有所有需要的 X/devel 东西。使用的命令是:

./configure --prefix=/usr --with-compiledby="megazoe"   \
            --with-features=huge --enable-rubyinterp    \
            --enable-pythoninterp --enable-python3interp    \
            --enable-gui=gnome2 --enable-luainterp \
            --enable-perlinterp --enable-cscope 

configure 的标准输出包含以下与 X 相关的内容:

checking if X11 header files can be found... yes
checking for _XdmcpAuthDoIt in -lXdmcp... no
checking for IceOpenConnection in -lICE... yes
checking for XpmCreatePixmapFromData in -lXpm... yes
checking if X11 header files implicitly declare return values... no
checking size of wchar_t is 2 bytes... no
checking --enable-gui argument... GNOME 2.x GUI support
checking --disable-gtktest argument... gtk test enabled
checking for pkg-config... /usr/bin/pkg-config
checking for GTK - version >= 2.2.0... yes; found version 2.18.9
checking for libgnomeui-2.0... yes
checking for FreeBSD... no
checking X11/SM/SMlib.h usability... yes
checking X11/SM/SMlib.h presence... yes
checking for X11/SM/SMlib.h... yes
checking X11/xpm.h usability... yes
checking X11/xpm.h presence... yes
checking for X11/xpm.h... yes
checking X11/Sunkeysym.h usability... yes
checking X11/Sunkeysym.h presence... yes
checking for X11/Sunkeysym.h... yes
checking for XIMText in X11/Xlib.h... yes
X GUI selected; xim has been enabled
checking for CYGWIN environment... no

Make 不会抛出任何错误,'vim' 构建得很好。只是,在任何地方都看不到 gvim!我可以将 -g 开关与 vim 一起用于 GUI 实例 [vim -g] 但这不是 gvim,而是使用 GNOME 菜单栏和作品,这正是我想要的。既然使用了--enable-gui=gnome2,不应该构建'gvim'吗?还是 gvim 完全不同?

关于如何解决这个问题的任何建议?

谢谢!

【问题讨论】:

这是 Fedora 中 vim 包中的规范文件(构建说明),可能会有所帮助(查找 %build 部分):pkgs.fedoraproject.org/cgit/vim.git/tree/vim.spec 请注意,它们构建了两次(有和没有 gtk),两个构建都生成一个 vim 可执行文件,然后将 gtk 重命名为 gvim @guido:好的,这很有趣。让我进一步检查。谢谢! 【参考方案1】:

诀窍似乎是在调用 make 时设置适当的 vimruntime 目录,并具有以下目录

--enable-gui=gnome2
--with-x=yes

在配置脚本的开关列表中。

这是我的测试构建脚本,它似乎给出了所需的结果。

mkdir /tmp/vimbuild; cd /tmp/vimbuild
wget -c ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2
tar -xjvf vim-7.4.tar.bz2
cd vim74
\rm -rf src/auto/config.cache
make clean
./configure --prefix=/usr --with-compiledby="megazoe"   \
            --with-features=huge --enable-rubyinterp    \
            --enable-pythoninterp --enable-python3interp    \
            --disable-tclinterp --with-x=yes \
            --enable-xim --enable-multibyte \
            --enable-gui=gnome2 \
            --enable-luainterp --enable-perlinterp \
            --enable-cscope \
            --enable-netbeans 2>&1

make -j20 VIMRUNTIMEDIR=/tmp/vimbuild/vim74/runtime/ 
if [ -f src/vim ]
then
  \cp -f src/vim src/gvim
  strip src/gvim
  ./src/gvim &
fi

将最终的可执行文件命名为 'gvim' 很重要,否则它需要以 vim -g 的形式调用才能处于 GUI 模式。

【讨论】:

rm -rf src/auto/config.cache 为我做的

以上是关于在 CentOS 6.4 上构建 gvim 7.4的主要内容,如果未能解决你的问题,请参考以下文章

手把手教你在centos 7.4上搭建NTP服务器

手把手教你在centos 7.4上搭建NTP服务器

CentOS 7.4——Apache应用之一,构建Web虚拟目录

Linux精华篇—CentOS 7.4下源码编译构建LAMP架构

CentOS 7.4——Apache应用之二,构建Web虚拟主机

企业常用Centos 7.4 --虚拟主机基于域名,端口,IP,Apache访问控制