如何在编译时向源代码添加行,但保持原样不变

时间:2017-07-27 04:03:19

标签: awk extern

我想编译源代码,但我需要添加extern" C"来自其他包的很多头文件。所以我必须同时保持完整。 我想知道的是,我可以添加

#ifdef __cplusplus  
extern "C" {  
#endif  

在标题和

#ifdef __cplusplus  
}  
#endif

我感兴趣的每个标题的页脚?
我能想到的是使用$awk将这些文件传递给编译器,但我无法提出详细信息 是否有任何已知的例子或我可以挖掘的东西?
非常感谢你。

1 个答案:

答案 0 :(得分:0)

您可以创建包装器,包括有问题的标头,如下所示:

extern "C" {
#include "header.h"
}

在您自己的代码中,然后包含包装器,而不是原始标头。

您可以使用一次性脚本自动创建这些包装器标头,这应该很简单。例如,在Bash中,我只做了类似的事情:

for f in include/*; do echo -e "extern \"C\" {\n#include \""$f"\"\n}" > "include_wrappers/wrap_$f"; done