使用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
。当然比查看对象文件要好一点,但仍然不理想
目前没有回答
相关问题 更多 >
编程相关推荐