问题是,我希望在我的 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 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/配置。这让我有些悲伤。
安装Python库,
sudo apt-get install python2.7-dev
现在尝试一下,
./configure --with-python
make
我假设您的
python2.7
二进制文件安装在 /usr/bin
下
然后你可以尝试
./configure --with-python=python2.7
然后make和gdb makefile会搜索python二进制文件以获取python头和lib来完成编译
当 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
这个线程非常旧,我尝试遵循其指南来构建带有 python 支持的 gdb 13.1,但失败了。
对我来说成功的关键是实际引用python3二进制文件(在我的例子中是3.7.7)而不是python 2(2.7.15):
./configure --prefix=/work/usr --with-python=/work/usr/bin/python3
首先,您需要使用 --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)