如何在大型项目中预处理具有多个 #include 文件的单个源文件
How to preprocess individual source file with several #include files spread across in large project?
为了获取预处理的输出,使用以下命令:
g++ -E a.cpp > temp.cpp
如果a.cpp
有#include
文件不在同一文件夹中,那么我们使用:
g++ -I <directory> -E a.cpp > temp.cpp
现在,有几个.cpp
文件,我想要一个预处理的输出。
每个.cpp文件和头文件都有巨大的#include
依赖关系,分布在几个不同的子目录中;因此,以下选项非常麻烦:
g++ -I <dir1> -I <dir2> -I <dir3> ... -E a.cpp > temp.cpp
有没有更简单的方法(最好不使用Makefile
)?
(假设dir1, dir2, ...
位于单个目录下)
您需要同一组-I
进行预处理和编译。
当你实际编译代码时,你肯定会使用一些-I
参数(可能由 make 文件生成)。
所以只需使用相同的参数(或编译,并复制和粘贴-I
参数)。
我看到的唯一选择是将您的头目录重组为位于公共目录中(带有子目录,使用 #include <subdir/header.h>
)。
但这需要做更多的工作(尽管可能值得付出努力)。
一种方法是提供所有子目录所在的 TOP 目录。这样你就不必给很多-I。但这会减慢速度。
相关文章:
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何将更多文件夹添加到c++include路径
- 修改生成文件以简化框架 #include 路径
- macOS 致命错误:sys/_types/_int8_t.h:没有此类文件或目录 #include < sys/_types/_int8_t.h>
- /usr/include/c++/7/cstdlib:75:15:致命错误:stdlib.h:没有这样的文件或目录 #i
- ROS C++项目"include"文件夹?
- 如何使boost::spirit解析器和lexer能够处理include文件
- 最佳做法:src/include 或 src 文件夹旁边的 include 文件夹
- 如何生成丢失的#include文件的列表
- 多个#include文件的类重新定义错误?(C++)
- 执行pclint时,include文件的顺序是否重要
- 如何在大型项目中预处理具有多个 #include 文件的单个源文件
- 创建带有嵌套include文件夹的c++NuGet包
- 当向第三方提供库时,C++include文件是否属于安全漏洞
- 如何使用 Eclipse 在 JNI "include"文件夹中添加 openCV 文件
- 包含from include文件的最佳实践
- Visual Studio在发布模式下找不到boost include文件(在调试中工作)
- 编译c++,组织include文件
- cmake如何知道include文件和lib在哪里
- 为什么我的#include文件不能编译