c++ - 确定定义类型的位置

标签 c++ linux ide definition

我正在处理一个相当大的代码库,其中有一些#ifdef 魔法在进行。我正在查看一个文件并试图确定类型的定义位置。不幸的是,它包含许多文件,其中包含许多文件,其中包含许多文件等。其中一些定义了影响您可能使用的定义的宏。该结构非常复杂,经过 10 分钟的 grepping 和跟踪包含链后,我仍然不知道正在使用哪个定义。我记得 visual studio 有一个很好的功能,我可以右键单击类型,它会显示定义类型的位置。是否有一个等效的 linux 读取 make 文件等的好工具?我确定有,但我仍然只是在我的开发环境中使用 vim + grep。

最佳答案

对于复杂的定义和依赖项,此功能在 Visual Studio 中也不总是有效。

解决方案:要求您的编译器在预处理后转储代码,要求它也打印#line 和#file 指令。在生成的文件中搜索您的类型,然后查看最接近的 #file 指令以了解它的来源。

(在 GCC 中你可以使用 -E 开关)

关于c++ - 确定定义类型的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4541457/

相关文章:

c++ - 具有两个不同缓冲区的指针算法

linux - 在屏幕上打印消息并同时发送到系统日志

Visual Studio Code 中的 JQuery 智能感知

java - Eclipse IDE/Weblogic Server 中的调试问题

c++ - 从 c/c++ 或 linux 发布到 facebook 墙上

c++ - 为 C 或 C++ 定义的通用预处理器?

c - 为什么这个程序在 init/reboot/shutdown 时没有收到 SIGTERM?

linux - 尝试我的第一个 BASH 脚本,总是遇到意外的文件结尾

c# - "add as link"选项发生了什么?

c++ - 将 ppm 转换为 png