【发布时间】:2010-11-12 03:08:30
【问题描述】:
我正在构建一个专用的嵌入式 Python 解释器,并希望避免依赖于动态库,因此我想用静态库来编译解释器(例如 libc.a 而不是 libc.so)。
我还想静态链接作为 Python 标准库一部分的所有动态库。我知道这可以使用Freeze.py 来完成,但是有没有其他方法可以一步完成?
【问题讨论】:
-
当有人说“从不 blah blah blah”时,我总是很怀疑;在我的场景中,静态链接完全有意义。不过感谢您的链接。
-
@sehe:静态链接有很多很好的理由,尤其是使用专有软件。对于那些以牙线为生的人来说很好,我仍然在一家专卖店工作,需要考虑我雇主的需求。用 GPL 或 LGPL 代码污染代码对我们来说是不可能的。静态链接和摆脱
glibc和朋友是实现这一目标的一种方法。 -
我很欣赏静态链接是有目的的。但是,它与许可的关系... 最好 是微不足道的。如果许可将成为争论的焦点,那么肯定动态链接在很大程度上胜过静态链接,因为动态链接不被认为是 GPL 意义上的衍生作品,但是静态链接是。伊纳尔虽然。无论如何,静态链接不是摆脱 glibc 的方法。不使用 glibc(静态或动态)是实现该目标的唯一方法
-
@sehe 不,你已经走了。如果你动态链接一个 GPL 库,你必须发布你的源代码:gnu.org/licenses/gpl-faq.en.html#GPLStaticVsDynamic
-
@Navin 有趣。我想知道我花了这么多年才终于有人以这种特殊的方式向我解释它。您是否有明确说明该目标并将其与许可措辞相关联的来源?我一定会阅读的。
标签: c++ python c compilation