《CPython Internals》閱讀筆記:p43-p60
《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 是根據(jù)經(jīng)驗還是根據(jù)什么列的,是否有遺漏?網(wǎng)上看的很多文章也沒有說一個基本的編譯有多少個 package 是必需的,反正如果編譯的時候報錯就根據(jù)錯誤繼續(xù)安裝。感覺是列不列出這些 package 的效果都差不多。這里先記錄一下。
2.編譯流程
-
執(zhí)行 configure 腳本
cpython# ./configure
configure 文件是 shell 腳本。執(zhí)行 configure 腳本的作用是讓 autoconf 在系統(tǒng)中搜索 CPython 需要的庫,并將它們的路徑復制到Makefile 文件中。執(zhí)行 ./configure 命令會在 cpython 目錄下生成一個 Makefile 文件。
-
編譯
make -j$(nproc)
-j:job的縮寫,$(nproc):指定電腦的核數(shù)作為 job 數(shù),提升編譯速度。執(zhí)行 make -j$(nproc) 命令會得到一個 python 可執(zhí)行文件。
-
安裝
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 章節(jié)簡評:本章講編譯流程,稍顯啰嗦,也沒有什么新奇的見解。
四、參考資料
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)
浙公網(wǎng)安備 33010602011771號