使用调试版本¶
对于 Python 包中本机代码的开发工作,您可能希望使用调试版本。为此,我们需要传递 -Dbuildtype=debug
选项,它等效于 -Ddebug=true -Doptimization=0
,给 meson setup
。此外,使用固定构建目录的编辑安装可能最有用。这样,安装的调试版本中的共享库将包含正确的路径,而不是指向临时构建目录的路径,否则 meson-python
会使用。然后,IDE 和其他工具将能够在调试期间显示正确的文件位置和行号。
我们可以使用以下 pip
调用完成所有操作
$ pip install -e . --no-build-isolation \
-Csetup-args=-Dbuildtype=debug \
-Cbuild-dir=build-dbg
您的包的这个调试版本将与您的 Python 解释器的常规版本或调试版本一起使用。调试 Python 解释器不是必需的,但可能有用。它可以从源代码构建,或者您可以从您选择的软件包管理器中获取(通常在类似于 python-dbg
的软件包名称下)。请注意,使用调试 Python 解释器不会生成您自己的包的调试版本 - 您必须使用 -Dbuildtype=debug
或等效标志。
警告
在 Conda 环境中,环境变量(如 CFLAGS
和 CXXFLAGS
)通常在激活环境时设置。这些环境变量包含优化标志,例如 -O2
,它们将覆盖由 -Dbuildtype=debug
隐含的优化级别。为了避免这种情况,请取消设置这些变量
$ unset CFLAGS
$ unset CXXFLAGS
最后,请注意,将构建类型从其默认值 release
更改为 debug
也会导致 meson-python
通过不定义 NDEBUG
宏来启用(或者更确切地说,不禁用)断言(参见 默认构建选项 中的 b_ndebug
)。