从源代码编译的 GVim 不使用 gtk2

从源代码编译的 GVim 不使用 gtk2

我有两台 HP-UX 计算机 A 和 B,分别具有 HP-UX 11.11 和 11.31。我从 B 源编译了 gvim 7.3,在 A 上编译了 gvim 7.0。

在 A 上,gvim 使用“带 GTK GUI 的版本”,使用 gcc (...) -DFEAT_GUI_GTK 编译,一切正常。

在 B 上,gvim 看起来不同并使用“带有 X11-Motif GUI 的版本”。这里 ssh -X 不会在选择上复制粘贴,就像线程“从通过 SSH -X 打开的源代码编译的 GVim 不会在选择上复制粘贴”中一样:

  • 通过 select 进行复制/粘贴适用于 A 上的 GVim 窗口,但不适用于 B 上。
  • 当我在 GVim 窗口中选择某些文本时,我可以通过在该窗口中右键单击来粘贴它,但我无法将其粘贴到本地运行的任何内容中。当我在本地选择某些内容时,我可以在本地粘贴它,但是当我粘贴到 GVim 窗口时,它会粘贴 GVim 窗口中最后选择的内容,而不是本地最后选择的内容。

问题是:我无法使用 gtk 重建 gvim。尽管我已经通过 HP 软件仓库 (GTK 2.6) 在机器上安装了 GTK+,并且在 Makefile 配置中默认使用 gtk+,但最终以编译器选项“gcc (...) -DFEAT_GUI_MOTIF”结束。

更具体地说:配置给出:

checking --enable-gui argument... yes/auto - automatic GUI support
checking whether or not to look for GTK+ 2... yes

但不搜索 gtk 库。它只寻找 Motif:

checking for location of Motif GUI libs... /usr/lib/Motif1.1

它并没有告诉我它缺少我可以提供的任何东西!在目录“auto”中,文件configure.log显示搜索GTk没有失败,它只是不寻找!

configure:7577: result: yes/auto - automatic GUI support
configure:7609: checking whether or not to look for GTK+ 2
configure:7618: result: yes
configure:7627: checking whether or not to look for GNOME
configure:7636: result: no
configure:7644: checking whether or not to look for Motif
configure:7653: result: yes
configure:7661: checking whether or not to look for Athena
configure:7670: result: yes
configure:7678: checking whether or not to look for neXtaw
configure:7687: result: yes
configure:7695: checking whether or not to look for Carbon
configure:7704: result: yes
configure:7752: checking --disable-gtktest argument
configure:7762: result: gtk test enabled
configure:7772: checking for pkg-config
configure:7803: result: no
configure:8035: checking for location of Motif GUI includes
configure:8047: result: in default path
configure:8062: checking --with-motif-lib argument
configure:8076: result: no
configure:8081: checking for location of Motif GUI libs
configure:8099: result: /usr/lib/Motif1.1
configure:8202: checking for XShapeQueryExtension in -lXext

make 以 OPTION Motif 开头:

avalenti@ncc1n:/usr/local/src/vim/vim73/src >make | tee make-minimal.results
mkdir objects
CC="gcc -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MOTIF   -I/usr/local/include      " srcdir=. sh ./osdef.sh
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MOTIF   -I/usr/local/include  -g -O2 -D_FORTIFY_SOURCE=1       -o objects/buffer.o buffer.c
(...)

如果我强制使用 gtk

configure --enable-gui=gtk2 

make 最终没有错误,但 gvim 说:

"E25: GUI cannot be used: Not enabled at compile time"

如何强制 gvim 使用 gtk2 进行编译?

答案1

你安装了 GTK2 '-dev' 包裹?他们是“另一半”。大多数人通常只需要库,因为程序已经编写和编译,他们只需链接到库就可以了,生活就很好了。

但是编译代码的人需要库例程的“描述和指针”,这些例程包含在“-dev”包中。我这样写是因为包名称通常非常相似,只是在末尾添加了“-dev”。

例如,在我的系统上,GTK2 的“-dev”文件名为“libgtk2.0-dev'。查看您的包管理器中是否有类似的内容。

祝你好运。

你不会收到错误,因为 Vim 配置脚本不需要 GTK2 库,它是一个“自动”配置选项,所以如果它存在,它会使用它,如果不存在,它会回退到视觉上令人惊叹主题外观。

答案2

今天遇到这个问题。即使安装了 -dev 版本后也是如此。

经过一番挖掘后。事实证明,默认情况下 pkg-config 仅在默认 64 位路径中查找 fontconfig 包。

所以我做了:

setenv PKG_CONFIG_PATH /usr/lib64/pkgconfig:/usr/lib/pkgconfig

两个地方都要看。

然后,我必须这样做:

sudo yum install fontconfig-devel

有了这两个,我就可以使用 GTK2 成功构建了。

相关内容