我引用这篇Medium文章,https://medium.com/@lupiel/installing-python-from-a-tgz-file-a-step-by-step-guide-4cf5f4a17a86,它建议标记在 linux 上安装 python 时,./configure 脚本的以下选项。
LDFLAGS=-Wl,-rpath=/opt/python/${PYTHON_VERSION}/lib,--disable-new-dtags
我查看了 python-configure 的手册页,它相对较短。我在 python3-config --help 中也没有找到任何内容。它告诉我 LDFLAGS“打印应该传递给链接器的标志”。我读到链接器是符号链接?无论如何,这就是我能找到的信息的范围。我不明白其余的在做什么。
这会构建一个共享库,这意味着 Python 解释器将主要包含在
libpython3.so
文件中,而 python
可执行文件将只是一个小垫片(可能 15 kb),它将链接到 libpython 共享对象。
这些 LDFLAGS 与本文提到的
--enable-shared
选项相结合,意味着 python
可执行文件将配置为 /opt/python/${PYTHON_ VERSION}/lib
的 运行时搜索路径来查找此共享对象,即它将去寻找一个
libpython3.so
文件用于动态链接。
这不是构建 CPython 的默认方式。默认情况下,解释器被烧录到 python 可执行文件中,即
python
exe 会更大,并且根本不会生成 libpython3.so
文件。
我不建议使用
--enable-shared
,除非你特别需要它(例如嵌入)。如果您不知道它的用途,则不需要它。