跨gdb找不到python

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

我使用 MSYS2/MINGW64 在 Windows 上构建了一个支持 python 的交叉 gdb。我已经在 MINGW64 中安装了 python,即我在

python2.7.exe
中有
C:\msys64\mingw64\bin
,并且这个地址在我的路径中。

运行 gdb 时出现以下错误

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
ImportError: No module named site`

我还添加了

C:\msys64\mingw64\lib
,其中有
libpython2.7.dll.a
,但我仍然遇到相同的错误。

我也尝试在windows上安装python并设置所有路径,但仍然是同样的错误。

如何让gdb找到python?

python gdb mingw cross-compiling msys2
1个回答
1
投票

你必须设置环境变量:

PYTHONPATH=C:\msys64\mingw64\lib\python2.7;C:\msys64\mingw64\lib\python2.7\lib-dynload;

PYTHONHOME 变量指的是 python 解释器:

PYTHONHOME=C:\msys64\mingw64\bin\python.exe

我在msys2下构建了自己的gdb,它在设置正确的环境变量后可以工作:

Microsoft Windows [Version 10.0.16299.19]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\tiit>echo %PYTHONHOME%
C:\msys64\mingw64\bin\pyhon.exe

C:\Users\tiit>echo %PYTHONPATH%
C:\msys64\mingw64\lib\python2.7;C:\msys64\mingw64\lib\python2.7\lib-dynload;

C:\Users\tiit>C:\msys64\home\tiit\gdb-7.11-bin\bin\x86_64-linux-gnu-gdb.exe
GNU gdb (GDB) 7.11.1.20160801-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=x86_64-w64-mingw32 --target=x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb)

我的配置命令行是:

./configure --target=x86_64-linux-gnu --prefix=/home/tiit/gdb-7.11-bin --with-python=/mingw64/bin/python.exe --enable-static=yes
© www.soinside.com 2019 - 2024. All rights reserved.