【发布时间】:2023-03-11 04:57:02
【问题描述】:
鉴于以下情况:
- 包含数千个 C++ 源文件的大型项目
- 没有通用头文件(没有一个头文件包含在每个源文件中)
- 上述项目用g++编译,make管理
有没有什么方法可以在每个编译单元中包含一个定义(例如宏)而不需要修改每个源文件以包含一个新的头文件?
【问题讨论】:
鉴于以下情况:
有没有什么方法可以在每个编译单元中包含一个定义(例如宏)而不需要修改每个源文件以包含一个新的头文件?
【问题讨论】:
您可以使用“-D”gcc 命令行选项来执行此操作。
示例:gcc -ansi -Wall -Dblah='mymacrohere()' blah.cpp
【讨论】:
来自 man gcc:
-包含文件
处理文件好像“#include”file“”作为第一行出现 主要源文件。但是,搜索的第一个目录 file 是预处理器的工作目录而不是目录 包含主要源文件。如果在那里找不到,那就是 在 "#include "..."" 搜索链的其余部分中搜索 像平常一样。 如果给出了多个 -include 选项,则文件包含在 它们在命令行中出现的顺序。
【讨论】: