在 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——Apache应用之一,构建Web虚拟目录
Linux精华篇—CentOS 7.4下源码编译构建LAMP架构