确定定义类型的位置

pyt*_*hor 5 c++ linux ide definition

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

ybu*_*ill 4

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

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

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