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

时间:2017-06-09 17:54:57

标签: python distutils

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

SYSROOT_TARGET是我的目标平台sysroot的路径。

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

  

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

这是因为它将-I/usr/include/python2.7添加到-c标志之前的gcc命令行。

是否有一个envvar我可以设置完全修改或摆脱该论点?

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

我知道它确实需要考虑envvars,因为我将编译器设置为工具链中的编译器。

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

要清楚,像这样的建筑工作得很好(现在 ...),但我宁愿不要像我那样毒掉我的包括。

1 个答案:

答案 0 :(得分:0)

我最终使用ffibuilder.emit_c_code()代替ffibuilder.compile(),然后自行编译。