【问题标题】:How can I force including a header, always?如何始终强制包含标题?
【发布时间】:2014-03-09 13:24:14
【问题描述】:

我一直在 Visual Studio 中处理一个项目,并且有一个头文件,我使用项目属性 -> C/C++ -> 高级 -> 强制包含文件将其包含在所有其他头文件中。如何在代码块中执行此操作?

【问题讨论】:

  • 菜单使用Advanced的地方应该使用Lock-in
  • 旧的 #include 有什么问题?
  • @Mat:我使用强制包含有两个目的:(1) Visual c++ 的反愚蠢警告,以及 (2) C++11 功能的宏,而编译器正在迎头赶上(是的, 仍然)。后一种用法比在构建命令中指定这些宏更方便且不易出错。最好将它们放在一个文件中,使用所有常用的头文件查找机制来提供编译器和系统特定的定义。 :-)
  • @mat 现在,错误的是我在项目中有大约 120 个 .h 文件,我只是认为如果每个文件中没有更多包含,它看起来会更好。跨度>

标签: c++ header include codeblocks


【解决方案1】:

Code::Blocks 默认使用 g++ 编译器。

使用 g++,强制包含标头的选项是 -includefile,您只需将其放入 IDE 设置中(例如,右键单击项目,选择构建选项,IIRC)。

为了找到该信息,我刚刚在 Google 上搜索了“强制包含 g++”,这让我找到了相关的文档 (http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html)。

查阅文档通常是个好主意,如果失败,请 google。

或者在这种情况下,相反的顺序,但无论如何,这是个好主意。

【讨论】:

  • 不知何故我愚蠢到不去谷歌搜索“强制”关键字-.-谢谢:)
【解决方案2】:

我个人会使用perl 来包含有问题的头文件,例如,在给定文件中的第一个头文件之后,并对所有.cpp 文件运行perl 脚本,可能使用find。换句话说:我会更改所有 .cpp 文件,但不会手动更改(除非只涉及几个文件)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多