甚是蛋疼
参考:1
首先从这里下载源码(这东西可是有20+MB,慢慢下载喔)
下面详细说一下操作方法:
1 解压insight-6-8-1
sudo tar jvxf insight-6-8-1.tar.bz2
2 修改源代码,然后进入insight-6-8-1/gdb
cd insight-6-8-1/gdb
sudo gedit i386-linux-nat.c
在头文件部分加上:
#include "i387-tdep.h"
保存,退出
3.从新回到 insight 目录,生成Makefile
cd ..
sudo ./configure()
4 开始编译
sudo make
5.遇到错误,编译一段时间过后就会发现本贴一开始提到的错误,一些warning被当成错误了
cd gdb #(进入insight下的gdb目录)
sudo gedit Makefile
找到WERROR_CFLAGS = -Werror,将其改为(也可在前面的./configure --disable-werror)
WERROR_CFLAGS=#-Werror(这里也可以将‘=’后面的内容删除掉变成 WERROR_CFLGAS= )
保存退出
仍然回到insight目录
cd ..
6.接着make
sudo make
7.这时再过段时间看看,是不是编译通过 呢
编译通过后安装 sudo make install
最后补充几点:
1. 没有必等到make出error的时候再去添加头文件,开始的时候加上就好,一气呵成的编译。
另:头文件之间有前后的依赖关系,要把i387-tdep.h 放到include 较为靠后的位置,没有查到底是依赖于哪个头文件,我把它放在了
代码:
#ifdef HAVE__DEBUGERG_H
#include
#endif
之后,可以编译通过。
2. 编译之前应当check下机器是否安装了termcap库文件,若无的话安装libncurses5-dev
代码:
sudo apt-get install libncurses5-dev
参考:2
This probably means that tk wasn't installed properly.
解决办法:
编译insight-6.8前必须修改insight-6.8的源代码。
1)修改insight-6.8/tk/generic/tk.h
将(line 653)
#define VirtualEvent (LASTEvent)
#define ActivateNotify (LASTEvent + 1)
#define DeactivateNotify (LASTEvent + 2)
#define MouseWheelEvent (LASTEvent + 3)
#define TK_LASTEVENT (LASTEvent + 4)
改为:
#define VirtualEvent (MappingNotify)
#define ActivateNotify (MappingNotify + 1)
#define DeactivateNotify (MappingNotify + 2)
#define MouseWheelEvent (MappingNotify + 3)
#define TK_LASTEVENT (MappingNotify + 4)
并将随后的#define TK_LASTEVENT (LASTEvent + 4)删除(line 661附近)
2)修改insight-6.8/tk/generic/tkBind.c
在line 586和line 587之间增加
#ifdef GenericEvent
/* GenericEvent */ 0,
#endif