在文章在vim中使用gdb调试中,我介绍了如何编译vim。
不过有网友在编译vim时遇到问题,问如何解决vim编译中出现的问题,我把解决方法总结在这里。
一个比较常见的问题就是在编译gvim不成功。vim编译完了,却发现图形化的gvim没有被编译出来。
vim在编译时,缺省会尝试编译gvim,但如果需要的图形库或其它库文件没有找到,就会略过gvim的编译。
出现这个问题,首先检查你的图形库是否存在。通常我们所用的图形库都是gtk2,如果你的计算机上安装上gnome,那么肯定已经安装了gtk的图形库。如果确是因gtk库没有安装,可以先安装gtk库,网上关于gtk安装的文章很多,在此不再赘述了。
如果你的计算机已经安装了gtk2,但gvim还是编译失败,就需要查看一下configure的输出,看看为什么不能编译gvim。configure的输出为vim72/src/auto/config.log。
例如,在我的debian计算机上,编译gvim失败,在config.log中,可以看到:
1. configure:7601: checking if X11 header files can be found
2. configure:7627: gcc -c -O2 -fno-strength-reduce -Wall conftest.c >&5
3. conftest.c:16:27: error: X11/Intrinsic.h: No such file or directory
4. configure:7634: $? = 1
5. configure: failed program was:
6. | /* confdefs.h. */
7. | #define PACKAGE_NAME “”
8. | #define PACKAGE_TARNAME “”
9. | #define PACKAGE_VERSION “”
10. | #define PACKAGE_STRING “”
11. | #define PACKAGE_BUGREPORT “”
12. | #define UNIX 1
13. | #define STDC_HEADERS 1
14. | #define HAVE_SYS_WAIT_H 1
15. | #define FEAT_NORMAL 1
16. | #define USE_XSMP_INTERACT 1
17. | #define HAVE_LIBNSL 1
18. | #define FEAT_NETBEANS_INTG 1
19. | /* end confdefs.h. */
20. | #include <X11/Xlib.h>
21. | #include <X11/Intrinsic.h>
22. | int
23. | main ()
24. | {
25. |
26. | ;
27. | return 0;
28. | }
29. configure:7645: result: no
30. configure:7978: checking –enable-gui argument
31. configure:8038: result: no GUI support
我们可以看到在第30行和31行显示没有GUI支持,而原因则在第3行:”conftest.c:16:27: error: X11/Intrinsic.h: No such file or directory“,也就是说找不到文件 X11/Intrinsic.h。
在网上搜索后得知,这个库在debian的libdevel/libxt-dev包中,安装此包后,gvim就编译成功了。
另外还有一个朋友问,如何使vim支持+signs功能,signs功能是在big版本中才被包含进来的功能,如果想在normal版本的vim中包含此功能,就需要修改vim72/src/feature.h文件,在此文件中把:
# define FEAT_SIGNS
打开,然后再编译就可以了。
太感谢博主了,这一些列的文章实在是太赞了~~
我也是啊~~~ 看来需要顶一下 ~~ @rushui999
作者好像好久没有写了,这些文章对我来说帮助真是太大了,我正是按照这一系列文章的指引,慢慢地把自己的vim配置得有声有色了。