如何防止 distutils 将 -I/usr/include/python2.7 添加到 gcc 命令行?(或将其更改



我正在用distutils交叉编译我的扩展(好吧,通过cffi.setsource,但它将这些参数直接传递给distutils。扩展),并且需要为 Python 标头提供备用路径。

SYSROOT_TARGET是通往目标平台系统根的路径。

我已经在include_dirs中包含SYSROOT_TARGET+'/usr/include/python2.7/'它工作正常,因为它首先搜索该目录,但我对它打印的警告感到不安:

CC1:警告:包含位置"/usr/include/python2.7"对于交叉编译是不安全的 [-Wpoison-system-directory]

发生这种情况是因为它在-c标志之前将-I/usr/include/python2.7添加到 gcc 命令行。

是否有我可以设置的环境来修改或完全摆脱该参数?

os.environ['PYTHONXCPREFIX'] = SYSROOT_TARGET+'/usr'不会改变任何事情。

我知道它确实考虑了 envvars,因为这就是我将编译器设置为工具链中的编译器的方式。

os.environ['CC'] = SYSROOT + '/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc'

需要明确的是,像这样的建筑工作得很好(目前......),但我宁愿不要像那样毒害我的目录。

我最终使用ffibuilder.emit_c_code()而不是ffibuilder.compile(),然后自己编译。

最新更新