【发布时间】:2020-06-03 22:42:36
【问题描述】:
我有setup.py 定义了两个Extensions,我想为一个扩展更改默认CFLAGS,而不是另一个。我查看了官方文档https://docs.python.org/3/distutils/apiref.html#distutils.core.Extension,但它没有解释我需要什么。它确实解释了如何添加额外的编译器/链接器标志。
这样做的正确方法是什么?
【问题讨论】:
我有setup.py 定义了两个Extensions,我想为一个扩展更改默认CFLAGS,而不是另一个。我查看了官方文档https://docs.python.org/3/distutils/apiref.html#distutils.core.Extension,但它没有解释我需要什么。它确实解释了如何添加额外的编译器/链接器标志。
这样做的正确方法是什么?
【问题讨论】:
我会按照 Python Extension Patterns 中的方法并在编译 Extensions 之前重置 CFLAGS,然后在从头开始分别设置每个 Extensions 中的所有编译器标志的同时恢复它们。
【讨论】:
distutils 本身 gets the flags from config 和 extra_compile_args 只会附加到它们,所以你不能清除默认标志,只能扩展它们。甚至在 2014 年创建该示例之前,情况就是如此。