我有2个源文件:test.cpp and func.cpp
和1个头文件:func.h
这些文件的内容如下:
test.cpp
#include "func.h"
int main() {
...
func();
...
}
func.cpp
#include "func.h"
void func() {
//func() definition
}
=====================
func.h
=====================
#include <iostream>
using namespace std;
void func(); /* func() declaration */
=====================
问题:
问题是找出源文件名,其中包含头文件中未定义实体的定义。
对于上面提到的例子:我需要找到包含函数“func()
”定义的源文件。
已采取的方法,但没有找到所需的结果:
我尝试使用“makedepend
”和“gcc -MM <source file names>
”来获取包含头文件中未定义实体定义的源文件,但它只给出了一条规则,显示了直接或间接包含的头文件由源文件。
gcc -M test.cpp func.cpp
的输出如下:
test.o:test.cpp func.h
func.o:func.cpp func.h
我需要获得表单的输出:
test.o:test.cpp func.h func.cpp
任何人都可以请,让我知道解决这个问题的方法。如何获取源文件名,它为我提供了包含头文件中未定义实体的定义 提前致谢。
答案 0 :(得分:0)
我需要定义未定义实体的源文件
使用ctags
一次;例如:ctags test.cpp func.cpp func.h
或ctags *.cpp *.h
然后找出func
的定义源文件,做e。 G。 grep '^func\>' tags
:
func func.cpp /^void func() {$/;" f