CPython(1)-macOS下通过CLion编译CPython

由于这段时间手头没有Windows平台的电脑,而且又习惯了JB家的IDE产品。研究了一下如何在CLion中编译并调试CPython。

环境

  • macOS:15.1
  • CLion:2024.2.2 (版本必须大于2020.2)

安装C语言编译器和工具包

$ xcode-select --install

会安装 Xcode 命令行工具(Command Line Tools for Xcode),这些工具包含了一系列用于开发的命令行程序和库,比如编译器(clang、gcc 等)、调试器(lldb)、各种开发相关的脚本和工具等。

安装OpenSSL

从PyPI官网获取包的时候,需要OpenSSL,一般来说构建完成后会获取其他包,我们可以通过Homebrew安装:

$brew install openssl xz zlib gdbm sqlite

获取cpython源码

可以通过 python官网或者直接通过github获得,我这边使用的是3.13:

$ git clone --branch 3.13 https://github.com/python/cpython

生成makefile

获得cpython源码后,进入到文件夹根目录下,运行

$ CPPFLAGS='-I$(brew --prefix zlib)/include'

$ LDFLAGS='-L$(brew --prefix zlib)/lib'

先设置环境变量指定zlib的位置,然后生成makefile文件。

$ ./configure

image-20241011162516802

将会在当前目录下生成makefile文件。

接下来可以使用

$ make -j4 -s

生成python.exe,很神奇的是在macOS下,生成的居然是.exe,不过这不是Windows可执行文件,因为macOS文件系统不区分大小写,为了防止意外引用Python/而故意设置的。

CLion配置

生成makefile文件结束后即可通过CLion打开。

在CLion中选择Open->选择cpython目录下的makefile文件->open as project

image-20241011164201266

使用默认值clean

image-20241011164235165

在上方菜单栏中选择build->build project就会开始构建python

image-20241011164544264

接下来设置已编译的二进制文件为运行/调试的配置选项。

在上方菜单栏选择Run->Edit Configurations。

在Native Application中按图中参数设置:

image-20241011165222344 image-20241011165308838

配置完成后即可在CLion中通过右上角快捷栏运行我们的REPL:

如果在CPython中设置了任何断点的话,使用DEBUG模式运行即可。

Refs:

  • 《CPython》设计与实现

CPython(1)-macOS下通过CLion编译CPython
https://dinghanyang.github.io/dhy_blog/2024/10/11/compile-cpython-in-macos/
作者
Hanyang Ding
发布于
2024年10月11日
许可协议