【发布时间】:2017-02-13 01:24:58
【问题描述】:
我收到了一个变量CC,其中包含引用系统上编译器的可执行文件。我需要获取这个可执行文件并最终使用一些特定于编译器的链接参数调用它。
我目前的方法似乎很脆弱:
def guess_compiler(cc):
out = subprocess.check_output((cc, '--version'))
for possible in (b'clang', b'gcc'):
if possible in out:
return possible.decode()
else:
# Fall back to gcc
return 'gcc'
由此,我使用了我关心的特定链接器参数的映射:
return {
'clang': '-Wl,-undefined,dynamic_lookup',
'gcc': '-Wl,--unresolved-symbols=ignore-all',
}[cc]
简而言之,我希望有一种更好(不那么脆弱)的方式来完成我已经完成的工作。
对于那些寻找我为什么想要这样的东西的人来说,这主要是为了a project I'm implementing 的可移植性。
【问题讨论】:
标签: gcc compilation clang portability