无法安装支持python的GDB

问题描述 投票:0回答:6

问题是,我希望在我的 GDB 安装中支持 python。当我跑步时

./configure --with-python 

make

但是,在 GDB 源文件目录中,“make”退出并显示以下信息:

checking whether to use python... yes
checking for python... (cached) /home/tools/tools/../bin/64//python
checking for python2.7... no
configure: error: python is missing or unusable"

请注意,返回的信息可能表明“make”程序正在尝试在“/home/tools/tools/../bin/64//python”目录中查找python安装,但这不是默认的python安装我的帐户。我已经设置了 $PATH 变量以使“python”命令指向我自己的 python 安装,该安装位于主目录下。

这是为什么呢?有人可以帮忙吗?一千个谢谢。

PS。有一件事我不确定,因为我只想让一些脚本在“.gdbinit”文件中自动运行,这看起来像一些 python 脚本。支持这个脚本是不是就等于让GDB可以调试python脚本了??

python gdb
6个回答
11
投票

我也遇到了同样的问题。我正在使用Python 2.7.10 - Anaconda 2.3.0(安装在非标准位置)和GDB-7.11。事实证明,在

gdb-7.11/
中有多个自动配置。当我检查
gdb-7.11/gdb/config.cache
时,出现错误,因为找不到
python2.7
库。所以解决方案是 export
LDFLAGS
,在
gdb-7.11
中运行顶级自动配置时,否则
gdb-7.11/gdb
中的自动配置将不知道在哪里找到 python2.7 库。

EG

 make distclean
 cd gdb/
 make distclean
 cd ../
 export LDFLAGS=-L/path/to/nonstandard/python/lib/; ./configure --prefix=/path/to/home/directory/gdb-7.11/ --with-python

注意:在这种情况下,最好清理顶层和 gdb 配置。清理顶层配置不会清理gdb/配置。这让我有些悲伤。


10
投票

安装Python库,

sudo apt-get install python2.7-dev

现在尝试一下,

./configure --with-python
make

4
投票

我假设您的

python2.7
二进制文件安装在
/usr/bin

然后你可以尝试

./configure --with-python=python2.7
然后make和gdb makefile会搜索python二进制文件以获取python头和lib来完成编译


2
投票

当 python 没有安装在标准位置时,通常会发生此错误。

如果您从源代码构建 python,则配置并构建它:

./configure --enable-shared --prefix=$HOME/local LDFLAGS="-Wl,--rpath=$HOME/local/lib"
make install

Python 构建完成后(将

$HOME/local
更改为您喜欢的位置),是时候配置和构建 gdb(使用 GDB 7.10 进行测试):

export LDFLAGS="-Wl,-rpath,$HOME/local/lib -L$HOME/local/lib"
./configure --with-python=$HOME/local/bin/ --prefix=$HOME/local
make install

0
投票

这个线程非常旧,我尝试遵循其指南来构建带有 python 支持的 gdb 13.1,但失败了。

对我来说成功的关键是实际引用python3二进制文件(在我的例子中是3.7.7)而不是python 2(2.7.15):

./configure --prefix=/work/usr --with-python=/work/usr/bin/python3

0
投票

首先,您需要使用 --enable-shared 选项编译 python。
设置以下环境。

csh: setenv LIBRARY_PATH /path/to/python/lib:$LIBRARY_PATH 
bash: export LIBRARY_PATH=/path/to/python/lib:$LIBRARY_PATH 

并且 LD_LIBRARY_PATH 对 gdb 编译没有任何帮助。 (用python-3.8编译gdb-9.2)

© www.soinside.com 2019 - 2024. All rights reserved.