在C++生成器中显示 #include 层次结构
Show #include hierarchy in C++Builder
我在处理别人的代码时遇到问题,似乎是乱序包含的头文件。 (例如,我收到重新定义错误,其中一些甚至在同一文件中! 查看C++Builder编译器正在使用的 #include 树会很有用,类似于Visual Studio的-showInclude标志。 是否有任何此类功能;如果是这样,我该如何访问它? 我专门使用C++Builder 2007。
如果您包含包含全局常量、变量甚至有时甚至#defines
的多次文件,通常会发生这种情况。这对于MDI应用程序来说很常见,其中主Form
包含子Form
s,其中一些使用相同的库......
包含层次结构对此无济于事,除非您计划按顺序编辑所有源文件#include
这可能会导致以后出现问题(尤其是兼容性)......
要解决此问题,您应该将所有此类文件封装为
#ifndef _file_name_h
#define _file_name_h
// here your source and includes
#endif
语句。就像这个例子一样:
- OpenGL 绘制立方体
这将防止在预编译器级别进行多个定义和编译,因为源代码只会在第一次被处理(而#define _file_name_h
尚未定义)。
遗憾的是,没有Borland C编译器选项来显示#include
d文件的层次结构。 请参阅 Embarcadero 的 BCC32 CLI 文档。
但是,另一种选择(当然,不那么干净)是使用 Borland C 编译器预处理器,例如
CPP32 -Sr source.cpp # outputs source.i with comments and indentation retained
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 继承期间显示未知行为的子类
- 既然存在危险,为什么项目要使用-I include开关
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何将更多文件夹添加到c++include路径
- 什么是"#include <boost/functional/hash.hpp> "?
- 程序崩溃并显示"std::out_of_range"错误
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 从数据库实时显示QT c++中的数据
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 显示错误输出的简单数组排序程序
- is_permutation方法从 #include<algorithm> 显示错误的输出
- 在C++生成器中显示 #include 层次结构
- QTableView clearSelect 失败,并显示 ASSERT:在文件 /usr/include/qt4/QtCore/qlist.h 中"!isEmpty()",第 282 行
- C++显示include搜索文件的位置
- 在Visual Studio中使用CMake显示include-directory作为项目的独立部分