《CPython Internals》学习第 3 天,p43-p60 总结,总计 18 页。
一、技术总结
1.编译所需要的package
sudo apt install -y build-essential libssl-dev zlib1g-dev libncurses5-dev \
libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev \
libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev libffi-dev
其实我比较好奇作者列的这些 package 是根据经验还是根据什么列的,是否有遗漏?网上看的很多文章也没有说一个基本的编译有多少个 package 是必需的,反正如果编译的时候报错就根据错误继续安装。感觉是列不列出这些 package 的效果都差不多。这里先记录一下。
2.编译流程
执行 configure 脚本
cpython# ./configure
configure 文件是 shell 脚本。执行 configure 脚本的作用是让 autoconf 在系统中搜索 CPython 需要的库,并将它们的路径复制到Makefile 文件中。执行 ./configure 命令会在 cpython 目录下生成一个 Makefile 文件。
编译
make -j$(nproc)
-j:job的缩写,$(nproc):指定电脑的核数作为 job 数,提升编译速度。执行 make -j$(nproc) 命令会得到一个 python 可执行文件。
安装
make altinstall
3.关于 confiure 的一点说明
p47, To compile CPython on Linux, you first need to download and install make, gcc, configure, and pkgconfig.
这这句话中,make、gcc、pkgconfig 是tool,configure 是 cpython 目录下的一个文件。configure 本来就在项目里面,不知道作者为什么要说 download and install configure,真的不严谨。
二、英语总结(生词:0)
无。
关于英语的注解同步更新汇总到 https://github.com/codists/English-In-CS-Books 仓库。
三、其它
Compiling CPython 章节简评:本章讲编译流程,稍显啰嗦,也没有什么新奇的见解。
四、参考资料
1. 编程
(1) Anthony Shaw,《CPython Internals》:https://book.douban.com/subject/35405785/
2. 英语
(1) Etymology Dictionary:https://www.etymonline.com
(2) Cambridge Dictionary:https://dictionary.cambridge.org
欢迎搜索及关注:编程人(a_codists)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。