问题描述
通过{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 (将#修改为@)