是否有可能在编译之前立即将代码注入翻译单元?

Is it possible to inject code into translation unit immediately before compilation

本文关键字:代码 注入 翻译 单元 有可能 编译 是否      更新时间:2023-10-16

我用msvc++ 2008和2010构建我的c++代码库。是否有可能获得翻译单元,分析它,必要时插入一些代码,然后传递到编译过程?原始源代码不应受到影响。

当然,对于构建项目的开发人员来说,它应该是透明的。最后,它只会影响目标文件。Visual studio非常强大。我想,应该有一些插件API或钩子来做这些。请给我一个提示。

我不相信这是可能的,正如你所描述的,虽然我不确定。它肯定是不平凡的。唯一一个类似的项目是OpenMP,但我的印象是微软实现了他们的版本。

我可以看到一个模板引擎,如Cheetah足够了。你可能会放弃那些花哨的东西,比如代码完成和智能感知。

基本上,您将设置文件以使用自定义编译器在另一个文件中生成新代码。然后,c++编译器将编译生成的文件。坦率地说,我不认为使用它会优雅或令人愉快。

我用CMake做类似的事情,虽然我没有把它作为一个通用的工具。我为一些内容生成写了一个。

如果你能详细描述一下你想做什么,我们可以提供一个更好的解决方案。