查找distutils的C编译器版本

问题描述

通过{p>可以使用distutils构建cpython扩展的认C编译器

from distutils.ccompiler import new_compiler,get_default_compiler
cc=new_compiler(get_default_compiler())

例如,

cc.compile(["foo.c"])

将在foo.c调用它。然后,可以抓取foo.o内容以获得编译器版本,例如

$ strings foo.o | grep GCC
GCC: (Gentoo 8.3.1-r2 p4) 8.3.1 20190518

这(当然也可以在需要时用Python编码)对我来说是一种获取访问编译器版本的非常卑鄙的方式。还有更Python化的方法吗?

不用说,可以轻松找到用例,因为如果使用特定版本的编译器,有时需要添加特定的编译器选项(distutils允许这样做)。


编辑: 一个人可以做类似的事情

_=cc.compile(['foo.c'],extra_preargs=['-dumpversion'])

,看到打印出类似8.3.1内容(这是gcc),或更复杂的输出--version而不是-dumpversion。当然比浏览目标文件要好一些,但仍然不理想。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)