代码之家  ›  专栏  ›  技术社区  ›  David Citron

有没有一种方法可以在不修改每个源文件的情况下在每个编译单元中包含一个头文件?

  •  3
  • David Citron  · 技术社区  · 16 年前

    • 大型工程,拥有数千个C++源文件
    • 没有公共头文件(每个源文件中都没有包含一个头文件)
    • 该项目是用g++编写的,由make管理

    有没有办法在每个编译单元中包含定义(例如宏),而不修改每个源文件以包含新的头文件?

    2 回复  |  直到 16 年前
        1
  •  15
  •   Zitrax dudico    16 年前

    来自曼恩gcc:

    -包含文件

    处理文件,就像“#包含“文件”显示为 主源文件。但是,搜索到的第一个目录 文件是预处理器的工作目录,而不是目录 包含主源文件。如果在那里找不到,它就是 像平常一样。 如果提供了多个包含选项,则文件将包含在 它们在命令行上的显示顺序。

        2
  •  9
  •   SoapBox    16 年前

    您可以使用“-D”gcc命令行选项执行此操作。

    例子: gcc -ansi -Wall -Dblah='mymacrohere()' blah.cpp

    GCC Manual, Command Line options, Preprocessor options