文档章节

Vim & GDB 调试器编译配置说明

inkling
 inkling
发布于 2013/04/29 12:08
字数 891
阅读 1284
收藏 43

<hr> 首先,对之前提到vim环境下中文字符显示乱码的问题作出一个补充。<br> 本人的Redhat内核版本2.4.20,其中vim默认安装的版本为6.1,出现中文乱码个人认为可能有两个原因:<br> 第一,6.1版本的vim过于老旧,对中文部分编码不支持。<br> 第二,之前编译vim源码时,执行./configure命令未添加 --enable-multibyte(支持多重编码)参数。<br> <hr><br> 然后,介绍一下采用vim7.3版本代替之前的vim6.1,并为vim添加gdb调试器补丁的过程。<br> **1、先下载vim-7.3.tar.bz2、vimgdb-for-vim7.3-master.zip这两个压缩包。**<br> vim7.3源码包:<ftp://ftp.vim.org/pub/vim/unix/><br> gdb补丁包:<https://github.com/larrupingpig/vimgdb-for-vim7.3><br> 下载完成后将其放至home目录。<br> 对文件进行解压:<br> \# tar –jxvf vim-7.3.tar.bz2<br> \# unzip vimgdb-for-vim7.3-master.zip<br> 为vim7.3打补丁:<br> \# patch –p0 < ./ vimgdb-for-vim7.3-master/vim73.patch<br> 进入vim73目录,开始编译:<br> \# cd vim73<br> \#./configure --enable-gdb --enable-gui=gtk2 --enable-cscope --enable-multibyte --enable-xim --enable-fontset --with-features=huge<br>

vim7.3的configure配置说明:<br>

  • --enable-gdb #支持gdb调试<br>
  • --enable-gui=gtk2 #gtk2支持,也能使用gnome<br>
  • --enable-cscope #cscope支持<br>
  • --enable-multibyte #双字符支持<br>
  • --enable-xim #输入法支持<br>
  • --enable-fontset #双字符支持<br>
  • --with-features=huge# 最大特性支持<br>

2、当执行完以上配置命令后,可能会编译报错error: cannot compute sizeof (off_t)<br> libiconv依赖报错<br> 原因:<br> vim在进行源码编译时,依赖于Libiconv库,而此时系统可能缺少相关的库,或者有库文件但不在编译寻找的路径中。<br> 解决方法:<br> 安装libiconv库(有则无需安装):<br> 先下载libiconv-1.14.tar.gz文件,网上资源很多:<br> http://www.gnu.org/software/libiconv/<br> 下载完成后将其拷至home目录,解压后,进入目录按照readme执行编译安装:<br> # ./configure --prefix=/usr/local<br> # make ; make install<br>

此时,libiconv库已经安装完毕,但如果进入vim目录继续编译源码,可能仍然提示之前的报错信息,这是因为libiconv库所在路径并不在vim源码编译搜索的路径范围,所以要解决问题,只能向编译器设定额外的工作路径。<br> 命令如下:<br> export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH<br> 此时再次进入vim73目录执行:<br> #./configure --enable-gdb --enable-gui=gtk2 --enable-cscope --enable-multibyte --enable-xim --enable-fontset --with-features=huge<br> 然后执行:<br> # make ; make install<br> 编译安装成功!此时你可以用Vim打开任意带有中文字符的文件,会发现再无乱码出现。<br> vim中文编码正常<br> 3、此时,配置工作还尚未结束。<br> 还要将vimgdb-for-vim7.3-master /vimgdb_runtime/路径内的文件拷贝到~/.vim/目录下,并在~/.vimrc配置文件中添加如下语句:<br> source ~/.vim/macros/gdb_mappings.vim<br> VimGdb调试器的编译配置工作就此已结束,具体使用请参看vimGBD的文档,或~/.vim/doc/gdb.txt 。<br>

4、最后,本文在编译vim7.3的过程中,还有一个小bug需要您注意。<br> 在指定额外路径的方式上,本文采用的是:<br> export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH<br> 即采用export的方式引导编译器寻找指定路径,这种方式在系统重启后会失效,当您重启系统并启用Vim时,会出现如下提示信息:<br> vim运行报错<br> 无法找到libiconv.so.2<br> 一种解决方法是在重启系统之前,用vim打开/etc/bashrc文件,修改其中的LD_LIBRARY_PATH环境变量:<br> LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/<br>

但如果您此时已重启系统,可以采用另一种方式解决此问题,当程序执行函数动态链接库时,默认会在缺省目录‘/usr/local/lib’和‘/usr/lib’寻找。<br> 故只要找到libiconv.so.2所在的位置,并将其拷贝至这两个缺省目录下即可。<br>

© 著作权归作者所有

inkling
粉丝 2
博文 13
码字总数 8342
作品 0
成都
程序员
私信 提问
加载中

评论(3)

Hyacinthus_M
Hyacinthus_M

引用来自“WaveJ”的评论

引用来自“Hyacinthus_M”的评论

你确定这样有用吗。我编译安装后,怎么还是不能使用呢,

我也不能确定我的配置方法放之四海皆准,有些时候跟你的系统环境有关。

在安装过VIM后编译安装会没有效果的样子,我试了下初始编译安装在VIM中有效果.但在GVIM仍然没有效果。还是用clewn吧.
inkling
inkling 博主

引用来自“Hyacinthus_M”的评论

你确定这样有用吗。我编译安装后,怎么还是不能使用呢,

我也不能确定我的配置方法放之四海皆准,有些时候跟你的系统环境有关。
Hyacinthus_M
Hyacinthus_M
你确定这样有用吗。我编译安装后,怎么还是不能使用呢,
在VIM中使用GDB调试 – 使用pyclewn

:help pyclewn 在前面的文章中介绍了使用vimgdb在vim中调试程序,这种方法允许在终端中的vim,以及图形化的gvim中调试你的程序。不过它的局限也是很明显的:首先,它需要给vim的源代码打补丁...

AlphaJay
2012/03/27
0
0
win下eclipse+yougatoo+cygwin+jlink交叉编译环境搭建

一 工具的安装 1 安装交叉编译工具 这里选用yagarto( yagarto-bu-2.21gcc-4.6.2-c-c++nl-1.19.0gdb-7.3.1eabi_20111119.exe). 安装完毕之后将bin路径添加到系统环境变量Path中, 如: C:yagar...

季风_落地窗
2014/03/18
0
0
Linux下C程序的编辑,编译和运行以及调试

Linux下C程序的编辑,编译和运行以及调试 要使用的工具: 编辑:vim(vi) 编译和运行:gcc 调试:gdb 安装很简单(以下是以在CentOS中安装为例): yum vim gcc gdb 1.使用vim编辑源文件 首先...

恒者
2014/01/08
0
4
Visual C++ on linux的使用

1.引言 在知乎看到别人说微软提供了一个插件,可以支持在visual C++下进行LINUX程序的开发调试。 对于我这样不爱用VIM,EMACS编辑器的人,都是在WINDOWS基于sublime开发,然后在linux serve...

西昆仑
2016/09/06
188
2
树莓派跑一个简单c++小程序教程

我用的是树莓派3代b型,所使用的是Debian系统的衍生系统raspbian(对系统不太了解不清楚)。树莓派开发c++程序需要的工具有编辑器vim,调试器gdb,编译器gcc或者g++.(大神飘过就行~~ 记录一下)...

suntingsheng123
2018/02/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android Camera模块解析之拍照

最近学习Android的camera模块,本文先介绍一下camera2的api,然后给出android camera拍照的例子,讲解一下camera 拍照的原因知识,与大家共勉。 camera2 介绍 android camera拍照功能介绍 一...

天王盖地虎626
4分钟前
4
0
Excel 曝Power Query安全漏洞

近日,Mimecast 威胁中心的安全研究人员,发现了微软 Excel 电子表格应用程序的一个新漏洞,获致 1.2 亿用户易受网络攻击。其指出,该安全漏洞意味着攻击者可以利用 Excel 的 Power Query 查...

linuxCool
11分钟前
1
0
SpringBoot | 第三十八章:基于RabbitMQ实现消息延迟队列方案

前言 >前段时间在编写通用的消息通知服务时,由于需要实现类似通知失败时,需要延后几分钟再次进行发送,进行多次尝试后,进入定时发送机制。此机制,在原先对接银联支付时,银联的异步通知也...

oKong
11分钟前
3
0
Excel 曝Power Query安全漏洞

近日,Mimecast 威胁中心的安全研究人员,发现了微软 Excel 电子表格应用程序的一个新漏洞,获致 1.2 亿用户易受网络攻击。其指出,该安全漏洞意味着攻击者可以利用 Excel 的 Power Query 查...

linux-tao
28分钟前
1
0
Java - NIO框架

Java NIO提供了与标准IO不同的IO工作方式。 Channels and Buffers(通道和缓冲区) 标准IO基于字节流和字符流,NIO基于通道(Channel)和缓冲区(Buffer)。数据从channel读取到buffer,或从Buffe...

丰田破产标志
31分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部