为无法重命名的程序编写C / C ++完全透明的包装器

时间:2019-04-28 03:34:56

标签: c linux wrapper

当AOSP构建脚本调用clang时,我需要为AOSP预构建的clang写一个包装器。目标是将clang重命名为clang.original,然后制作一个调用clang.original的C / C ++包装器,然后将其放在AOSP clang工具集文件夹中并命名为clang。有关如何制作包装纸的信息,请参考:How to write a wrapper program in Linux that is fully transparent

但是我发现AOSP中的clang的设计就像您对其重命名一样,它将不再起作用。

是否可以为无法重命名的程序制作包装?

或者至少有一种方法可以解决预建的clang吗?

供参考:

预建的clang大小仅为6.4KB,clang-6.0为60MB。因此,此clang本身是真正clang-6.0的包装。构建脚本将调用clang。我将clang重命名为clang.original。即使直接在bash中运行“ ./clang.original”,也会出现错误:

Traceback(most recent call last) :
File "./clang.original", line 174, in <module>
main(sys.argv)
File "./clang.original", line 170, in main
cw.invoke_compiler()
File "./clang.original", line 144, in invoke_compiler
os.execv(self.argv0, self.execargs)
OSError: [Errno 2] No such file or directory

0 个答案:

没有答案